asp.net 代码隐藏的编码模型_实用技巧

一.内联代码与代码隐藏
代码隐藏模型相对内联代码的优势:

1.逻辑代码和html的分离,使得我们可以更专注于业务逻辑的处理。
2.使业务逻辑更加清晰。
3.可以将后置代码编译成dll,使得程序更加安全。

二.后置代码与页面的关系和机制
与代码后置模型相关的三个类。

1.基页面类 page类

.net类库中的page类,page类定义了页面的基本功能。例如:允许存放其他控件、呈现html、提供对asp.net对象的访问(如request、response、session等)。

2.代码后置类
在编译的时候,asp.net利用了分部类的神奇功能把一些额外的代码附加到代码后置类中。

在附加的这部分代码中,把页面上所有控件定义成protected类型的变量,从而使得可以在代码后置类中能够访问这些控件。

3.页面类

asp.net编译器在编译的时候会创建另一个类代表实际的aspx页面,这个类继承自代码隐藏类。
这个类中包含了初始化控件和呈现html的代码。当接受到这个页面请求时,asp.net实例化这个类。
这三各类的关系如下图:

三.代码隐藏文件与页面的连接
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
代码隐藏文件与页面的连接非常简单,在aspx页面顶端的这样一句话就完成了他们之间的连接。
codeFile指定了后置代码的文件,Inherits指定了已经编译的后置代码的类名。

四.控件与页面变量的连接

了解后置代码类和页面类的关系以后,控件如何和页面变量连接的理解就简单多了。
比如:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
asp.net编译器都会附件如下的变量声明到你的代码后置类中,当然这些声明是不可见的:

protected System.Web.UI.TextBox TextBox1;
这样就能够在后置代码类中访问页面控件标签了。
五.事件与事件处理程序的连接
.net当中事件机制是一种非常重要的机制,这一部分放到后面慢慢弄清楚。

时间: 2024-11-01 07:40:27

asp.net 代码隐藏的编码模型_实用技巧的相关文章

ASP.NET Forms身份认证详解_实用技巧

ASP.NET身份认证基础 在开始今天的内容之前,我想有二个最基础的问题首先要明确: 1. 如何判断当前请求是一个已登录用户发起的? 2. 如何获取当前登录用户的登录名? 在标准的ASP.NET身份认证方式中,上面二个问题的答案是: 1. 如果Request.IsAuthenticated为true,则表示是一个已登录用户. 2. 如果是一个已登录用户,访问HttpContext.User.Identity.Name可获取登录名(都是实例属性). 接下来,本文将会围绕上面二个问题展开,请继续阅读

浅谈ASP.NET的include的使用方法_实用技巧

我们学过的Code分离到不同文件的方法,主要包括: 程序集.dll.<inherits src>.cs.<script src>.cs.用户控件.ascx.include.Response.WriteFile() 程序集.dll:这是最高级的方法,它引用的是一个被编译为IL的DLL(程序集)文件. <inherits src>.cs:用这种方法,可以先定义一个继承Page类的新类,再在ASPX/ASCX文件中加工此类. <script src>.cs:可以把

asp.net 获取Gridview隐藏列的值_实用技巧

在Gridview 的 RowCreated事件中书写如下代码: 复制代码 代码如下: void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header) { //隐藏第1列 e.Row.Cells[0].Visible = false; //

asp.net生成验证码代码(纯中文)_实用技巧

复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; usi

解决ASP.NET回传后div滚动条位置复位的问题(利用隐藏控件原理)_实用技巧

首先是为DIV添加一个onscroll="javascript:setScollTop()" 的方法(当然不一定是DIV其他的标签思路应该也是这样的) 复制代码 代码如下: <div style="overflow: auto; height: 152px" align="left" id="dvScoll_1"   onscroll="javascript:setScollTop()">www

浅谈ASP.NET的Postback 实例代码第1/2页_实用技巧

我们知道,无论是ASP.NET1.x,2.0,甚至是以后的版本,ASP.NET最终Render到Client端通过浏览器浏览的都是一样:一个单纯的HTML.Client通过Submit Form的方式将填入Form的数据提交给Server进行处理.我们现在来看看ASP.NET整个Postback程序处理的过程. 首先我们通过一个Sample来看ASP.NET如何处理一个通过Click一个Button引起的Postback.下面是Web Page的HTML: 复制代码 代码如下: <%@ Page

asp.net水晶报表参数字段在代码中赋值的方法_实用技巧

本文实例讲述了asp.net水晶报表参数字段在代码中赋值的方法.分享给大家供大家参考.具体实现方法如下: // 声明将参数传递给查看器控件所需的变量. ParameterFields paramFields = new ParameterFields (); ParameterField paramField = new ParameterField (); ParameterDiscreteValue discreteVal = new ParameterDiscreteValue (); P

asp.net下用服务器端代码解决浏览器兼容性问题_实用技巧

用代码判断客户端使用的浏览器版本 Response.Write(Request.ServerVariables["HTTP_USER_AGENT"]);(貌似ASP上也可用这个) 或 Response.Write(Request.UserAgent); 我的是IE7输出: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SE 1.X; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET

asp.net javascript 文件无刷新上传实例代码第1/2页_实用技巧

在新增数据项的时候,用ajax实现无刷新提交,但上传文件的时候,由于数据类型原因,不能将页面的<asp:FileUpload>中以字符串值的方式传到js里调用.我一共找到了两个方法予以解决,实现无刷新上传. 第一种方法:利用js的ADODB.Stream,将文件先转换成流,再通过js上传到服务器,这样有个好处就是可以上传超大文件,并且由于是数据流,可以支持断点续传.方便显示上传进度等人性化功能.唯一的缺点是要客户端浏览器需要设置安全级别,或者安装相关ActiveX控件(这个控件自己做的,加载到