ASP.NET页面有三部分构成:页面指令、脚本代码和页面内容。

Web的脚本代码是由“<script runat="server"><script>”标签括起来的代码,在里面可以定义页面的全局变量或程序处理过程;

Web的页面内容都是基于HTML或XML的。

页面指令用于指定当前页编译处理时所使用的设置,一个页面可以根据需要同时使用多条页面指令。ASP.NET页面指令不区分大小写,并且不需要在属性值两侧加上引号。

ASP.NET的页面指令是以“<%@ ... %>”括起来的代码,例如:

<%@ Page Language="C#" CodeFile="Default.aspx.cs" %>

在ASP.NET页面或用户控件中共有11条指令,无论页面是使用后台编码模型还是内置编码模型,都可以在应用程序中使用这些指令。具体格式如下:

<%@ [Directive] [Attribute=Value] %>

一. ASP.NET常用指令如下:

指令 说明
Assembly 把程序集连接到与它相关的页面或用户控件上。
Control 用户控件(ascx)使用的指令,其含义与Page指令相当。
Implements 实现指定.NET Framework接口。
Import 在页面或用户控件中导入指定的命名空间。
Master 允许指定master页面——在解析或编译页面时使用的特定属性和值。这个指令只能与master页面一起使用。
MasterType 把类名与页面关联起来,获得包含在特定master页面的强类型化的引用或成员。
OutputCache 控制页面或用户控件的输出高速缓存策略。
Page 允许指定在解析或编译页面时使用的页面特定属性和值。这个指令只能与ASP.NET页面一起使用。
PreviousPageType 允许ASP.NET页面处理程序中另一个页面的回送信息。
Reference 把页面或用户控件链接到当前的页面或用户控件上。
Register 给命名空间和类名关联上别名,作为定制服务器空间语法中的记号。

1. @Page指令

属性 描述
AspCompat 当设置为true,允许在单线程单元(STA)上执行页面。默认值为false。
注意:当该属性设置为true,可能导致页面的性能降低。
Async 指定ASP.NET页面是同步或异步处理。
AutoEventWireUp 设置为true时,指定页面事件自动触发,默认设置为true。
Buffer 设置为true时,支持HTTP响应缓存,默认设置为true。
ClassName 指定编译页面时绑定到页面上的类名。
CodeFile 引用与页面元素相关的后台编码文件。
CodePage 指定响应的代码页面值。
CodeBehind 指定包含与页关联的类的已编译文件的功能。该属性不能再运行时使用。提供此属性是为了与以前版本的ASP.NET兼容。
CodeFileBaseClass 指定页的基类及其关联的代码隐藏类的路径。如果使用此属性,则必须同时使用CodeFile。
CompileOptions 编译器字符串,指定页面的编译选项。
CompileWith 包含一个String值,指向所使用的后台编码文件。
ContentType 把响应的HTTP内容类型定义为标准MIME类型。
Culture 指定页面的文化设置。
Debug 设置为true时,用调试符号编译页面。
Description 提供页面的文件描述。
EnableSessionSate 设置为true时,支持页面的会话状态,其默认值设置为true。
EnableTheming 设置为true时,页面可以使用主题,其默认值设置为true。
EnableViewSateMac 设置为true时,当用户回送页面时,页面会在视图状态上进行机器范围内的身份验证,其默认值为false。
ErrorPage 为所有为处理的页面异常指定用于发送信息的URL。
Explicit 设置为true时,支持VB的Explicit选项,其默认值设置为false。
Language 定义内置显示和脚本块所使用的语言。
LCID 为Web Form的页面定义本地标识符。
LinePragmas 指定得到的程序集是否使用行附注。
MasterPageFile 指向页面所使用的master页面的地址。这个属性在内容页中使用。
MaintainScrollPosition
OnPostBack
Boolean值,表示在回送页面时,页面是位于相同的滚动位置上,还是在最高的位置上重新生成页面。
PersonalizationProvider String值,指定把个性化信息应用于页面时所使用的个性化提供程序名。
ResponseEncoding 指定页面内容的响应编码。
SmartNavigation 指定是否为功能更丰富的浏览器激活ASP.NET只能导航功能,它把回送信息返回到页面的当前位置,其默认值是false。
Src 指向类的源文件,用于所显示的页面的后台编码。
Strict 设置为true时,使用VB Strict模式编译页面,其默认值设置为false。
Theme 使用ASP.NET4.0的主题功能,把指定的主题应用于页面。
Title 应用页面的标题。只能应用于内容页。
Trace 设置为true,激活页面跟踪,其默认值设置为false。
TraceMode 指定激活跟踪功能时如何显示跟踪信息,属性值有SortByTime或SortByCategory,默认设置是SortByTime。
Transaction 指定页面上是否支持事务处理,属性值有NoSupported、Supported、Required和RequireNew,默认设置是NoSupport。
ValidateRequest 设置为true时,根据一组潜在危险的值检查窗体输入值,防止Web应用程序受到有害攻击。默认值是true。

实例:

<%@ Page Language="C#" AutoEventWireUp="false" CodeFile="Default.aspx.cs" %>

2. @Master指令

@Master指令类似于@Page指令,但@Master指令只用于master页面(master)。在使用@Master指令时,要指定和站点上的内容页面一起使用的模板页面的属性。内容页面(使用@Page指令建立)可以继承master页面上的所有master内容(在master页面上使用@Master指令定义的内容)。

@Master指令的属性比@Page指令少,具体如下:

属性 描述
AutoEventWireUp 设置为true时,指定页面事件自动触发,默认设置为true。
ClassName 指定编译页面时绑定到页面上的类名。
CodeFile 引用与页面元素相关的后台编码文件。
CompileOptions 编译器字符串,指定页面的编译选项。
CompileWith 包含一个String值,指向所使用的后台编码文件。
ContentType 把响应的HTTP内容类型定义为标准MIME类型。
Culture 指定页面的文化设置。
Debug 设置为true时,用调试符号编译页面。
Description 提供页面的文件描述。
EnableTheming 设置为true时,页面可以使用主题,其默认值设置为true。
Explicit 设置为true时,支持VB的Explicit选项,其默认值设置为false。
Language 定义内置显示和脚本块所使用的语言。
LinePragmas 指定得到的程序集是否使用行附注。
MasterPageFile 指向页面所使用的master页面的地址。这个属性在内容页中使用。
Src 指向类的源文件,用于所显示的页面的后台编码。
Strict 设置为true时,使用VB Strict模式编译页面,其默认值设置为false。

示例:

<%@ Master Language="C#" CodeFile="MasterPage.aspx.cs" AutoEventWireUp="false" Inherits="MasterPage" %>

3. Control指令

@Control指令也类似于Page指令,但@Control指令时在建立ASP.NET用户控件时使用的。@Control指令允许定义用户控件要继承的属性。@Control指令的属性比@Page指令的少。

@Control指令的属性如下:

属性 描述
AutoEventWireUp 设置为true时,指定页面事件自动触发,默认设置为true。
ClassName 指定编译页面时绑定到页面上的类名。
CodeFile 引用与页面元素相关的后台编码文件。
CompileOptions 编译器字符串,指定页面的编译选项。
CompileWith 包含一个String值,指向所使用的后台编码文件。
ContentType 把响应的HTTP内容类型定义为标准MIME类型。
Culture 指定页面的文化设置。
Debug 设置为true时,用调试符号编译页面。
Description 提供页面的文件描述。
EnableTheming 设置为true时,页面可以使用主题,其默认值设置为true。
Explicit 设置为true时,支持VB的Explicit选项,其默认值设置为false。
Language 定义内置显示和脚本块所使用的语言。
LinePragmas 指定得到的程序集是否使用行附注。
Src 指向类的源文件,用于所显示的页面的后台编码。
Strict 设置为true时,使用VB Strict模式编译页面,其默认值设置为false。

实例:

<%@ Control Language="C#" CodeFile="ControlPage.aspx.cs" AutoEventWireUp="false" Inherits="ControlPage" %>

二. ASP.NET网页的生命周期

每个ASP.NET网页都有一个固定的生命周期。当ASP.NET运行库收到一个给定的*.aspx文件的传入请求时,将使用类型的默认构造函数把相关的派生自System.Web.UI.Page的类型分配到内存中。在此之后,框架将会自动触发一系列事件。

默认情况下啊,会自动出现Load事件,如下:

public partial class Default: System.Web.UI.Page {
    protected void Page_load(object sender, EventArgs e) {
        // 页面响应
        // Response.Write("页面加载完成!");
    }
}

Page类型的事件:

事件 描述
Error 当页面发生错误时执行。
PreInit 框架使用该事件来分配Web控件,应用主题,确立母版页,并设置用户个性化配置。可以截取该事件来自定义进程。
Init 框架使用该事件通过回传或查看状态数据把Web控件的属性设置为它们先前的值。
Load 页面加载完成时执行。
PreRender 所有控件数据绑定和UI配置已经发生,并且控件已经准备好用于将它们的数据呈现到将要发出的HTTP响应里。
Unload 页面关闭时执行。

实例:

public partial class Default: System.Web.UI.Page {
    protected void Page_load(object sender, EventArgs e) {
        // Response.Write("页面加载完成!");
    }
    void Page_Error(object sender, EventArgs e) {
        Response.Write(Server.GetLastError().Message);
    }
    protected void Unload(object sender, EventArgs e) {
        Response.Write("页面关闭!");
    }
    protected void btnPostback_Click(object sender, EventArgs e) {
        Response.Write("btnPostback 正在点击!");
    }
}
本文作者:子匠_Zijor,转载请注明出处:http://www.dengzhr.com/others/backend/csharp/654