@Page指令 定义页面属性
@Page指令允许为ASP.NET页面(.aspx)指定解析和编译页面时使用的属性和值。这是最常用的指令。ASP.NET页面是ASP.NET的一个重要部分,所以它有许多属性。表3-4总结了@Page指令的可用属性。
表 3-4
属 性 |
说 明 |
AspCompat |
若其值为True,就允许页面在单线程的单元中执行,这个属性的默认设置是False。 |
Async |
指定ASP.NET页面是同步或异步处理 |
AutoEventWireUp |
设置为True时,指定页面事件自动触发。这个属性的默认设置是True |
Buffer |
设置为True时,支持HTTP响应缓存。这个属性的默认设置是True |
ClassName |
指定编译页面时绑定到页面上的类名 |
CodeFile |
引用与页面相关的后台编码文件 |
CodePage |
指定响应的代码页面值 |
CompilerOptions |
编译器字符串,指定页面的编译选项 |
CompileWith |
包含一个String值,指向所使用的后台编码文件 |
ContentType |
把响应的HTTP内容类型定义为标准MIME类型 |
Culture |
指定页面的文化设置。ASP.NET 2.0允许把Culture 属性的值设置为Auto ,支持自动检测需要的文化 |
Debug |
设置为True时,用调试符号编译页面 |
Description |
提供页面的文本描述。ASP.NET解析器忽略这个属性及其值 |
EnableSessionState |
设置为True时,支持页面的会话状态,其默认设置是True |
EnableTheming |
设置为True时,页面可以使用主题。其默认设置是False. |
EnableViewState |
设置为True时,在页面中维护视图状态,其默认设置是True |
EnableViewStateMac |
设置为True时,当用户回送页面时,页面会在视图状态上进行机器范围内的身份验证,其默认设置是False |
ErrorPage |
为所有未处理的页面异常指定用于发送信息的URL |
Explicit |
设置为True时,支持Visual Basic的Explicit选项。其默认设置是False |
Language |
定义内置显示和脚本块所使用的语言 |
LCID |
为Web Form的页面定义本地标识符 |
LinePragmas |
Boolean值,指定得到的程序集是否使用行附注 |
MasterPageFile |
带一个 String 值,指向页面所使用的master页面的地址。这个属性在内容页面中使用 |
MaintainScrollPositionOn |
带一个Boolean 值,表示在回送页面时,页面是位于相同的滚动位置上,还是在最高的位置上重新生成页面 |
PersonalizationProvider |
带一个 String 值,指定把个性化信息应用于页面时所使用的个性化提供程序名 |
ResponseEncoding |
指定页面内容的响应编码 |
(续表)
属 性 |
说 明 |
SmartNavigation |
指定是否为功能更丰富的浏览器激活ASP.NET智能导航功能。它把回送信息返回到页面的当前位置,其默认值是False |
Src |
指向类的源文件,用于所显示的页面的后台编码 |
Strict |
设置为True时,使用Visual Basic Strict模式编译页面,其默认值是False |
Theme |
使用ASP.NET 2.0的主题功能,把指定的主题应用于页面 |
Title |
应用页面的标题。这个属性主要用于必须应用页面标题的内容页面,而不是应用master页面中指定内容的页面 |
Trace |
设置为True时,激活页面跟踪,其默认值是False |
TraceMode |
指定激活跟踪功能时如何显示跟踪消息。这个属性的设置可以是SortByTime 或SortByCategory,默认设置是SortByTime |
Transaction |
指定页面上是否支持事务处理。这个属性的设置可以是NotSupported、Supported、Required和RequiresNew,默认设置是NotSupported |
UICulture |
UICulture 属性的值指定ASP.NET 页面使用什么UI Culture。 ASP.NET 2.0允许给UICulture属性使用Auto值,支持自动检测UICulture |
ValidateRequest |
设置为True时,根据一组潜在危险的值检查窗体输入值,帮助防止Web应用程序受到有害的攻击,例如JavaScript攻击。默认值是True |
WarningLevel |
指定停止编译页面时的编译警告级别,其值可以是0到4 |
下面是使用@Page指令的一个示例:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
Inherits="_Default" %>
@Master指令 指定母版页
@Master指令非常类似于@Page指令,但@Master指令用于master页面(.master)。在使用@Master指令时,要指定和站点上的内容页面一起使用的模板页面的属性。内容页面(使用@Page指令建立)可以继承master页面上的所有master内容(在master页面上使用@Master指令定义的内容)。尽管这两个指令是类似的,但@Master指令的属性比@Page指令少。@Master指令的可用属性如表3-5所示。
表 3-5
属 性 |
说 明 |
AutoEventWireUp |
设置为True时,指定master页面的事件是否自动触发。默认设置为True |
ClassName |
指定编译页面时绑定到master页面上的类名 |
CodeFile |
引用与页面相关的后台编码文件 |
(续表)
属 性 |
说 明 |
CompilerOptions |
编译字符串,表示master页面的编译选项 |
CompileWith |
带一个String值,指向用于master页面的后台编码文件 |
Debug |
设置为True时,用调试符号编译master页面 |
Description |
提供master页面的文本描述。ASP.NET 解析器会忽略这个属性及其值 |
EnableTheming |
设置为True时,表示master页面可以使用主题功能。其默认设置是False |
EnableViewState |
设置为True时,维护master页面的视图状态。其默认设置是True |
Explicit |
设置为True时,表示激活Visual Basic Explicit 选项。其默认设置是False |
Inherits |
指定master页面要继承的CodeBehind类 |
Language |
定义内置显示和脚本块使用的语言 |
LinePragmas |
Boolean值,指定得到的程序集是否使用行附注 |
MasterPageFile |
带一个String值,指向master 页面所使用的master页面的地址。master页面可以使用另一个master页面,创建嵌套的master页面 |
Src |
指向类的源文件,用于要显示的master页面的后台编码 |
Strict |
设置为True时,使用Visual Basic Strict模式编译master页面。其默认设置是False |
WarningLevel |
指定停止编译页面时的编译警告级别,其值可以是0到4 |
下面是使用@Master指令的一个例子:
<%@ Master Language="VB" CodeFile="MasterPage1.master.vb"
AutoEventWireup="false" Inherits="MasterPage" %>
@Control指令 用户控件
@Control指令类似于@Page指令,但@Control指令是在建立ASP.NET用户控件时使用的。@Control指令允许定义用户控件要继承的属性。这些属性值会在解析和编译页面时赋予用户控件。@Control指令的可用属性比@Page指令少,但其中有许多都可以在建立用户控件时进行需要的修改。表3-6详细介绍了这些可用属性。
表 3-6
属 性 |
说 明 |
AutoEventWireUp |
设置为True时,指定用户控件的事件是否自动触发。默认设置为True |
ClassName |
指定编译页面时绑定到用户控件上的类名 |
CodeFile |
引用与用户控件相关的后台编码文件 |
CompilerOptions |
编译字符串,表示用户控件的编译选项 |
CompileWith |
带一个String值,指向用于用户控件的后台编码文件 |
Debug |
设置为True时,用调试符号编译用户控件 |
(续表)
属 性 |
说 明 |
Description |
提供用户控件的文本描述。ASP.NET 解析器会忽略这个属性及其值 |
EnableTheming |
设置为True时,表示用户控件可以使用主题功能。其默认设置是False |
EnableViewState |
设置为True时,维护用户控件的视图状态。其默认设置是True |
Explicit |
设置为True时,表示激活Visual Basic Explicit 选项。其默认设置是False |
Inherits |
指定用户控件要继承的CodeBehind类 |
Language |
定义内置显示和脚本块使用的语言 |
LinePragmas |
Boolean值,指定得到的程序集是否使用行附注 |
Src |
指向类的源文件,用于要显示的用户控件的后台编码 |
Strict |
设置为True时,使用Visual Basic Strict模式编译用户控件。其默认设置是False |
WarningLevel |
指定停止编译页面时的编译警告级别,其值可以是0到4 |
@Control指令用于ASP.NET用户控件。下面是使用该指令的一个例子:
<%@ Control Language="VB" Explicit="True"
CodeFile="WebUserControl.ascx.vb" Inherits="WebUserControl"
Description="This is the registration user control." %>
@Import指令 导入指定命名空间
-
namespace
-
要导入页的命名空间的名称。这可以包括任何包含在 .NET Framework 中的命名空间或自定义命名空间。
-
@Implements指令 实现指定接口
-
interface
-
要在页或用户控件中实现的接口。
-
<%@ Implements interface="ValidInterfaceName" %>
@Register指令 给命名空间和类名关联上别名,作为定制服务器控件语法中的记号
tagprefix
与命名空间关联的别名。
tagname
与类关联的别名。
Namespace
与 tagprefix 关联的命名空间。
Src
与 tagprefix:tagname 对关联的声明性用户控件文件的位置(相对的或绝对的)。
Assembly
与 tagprefix 关联的命名空间所驻留的程序集。
注意 程序集名称不包括文件扩展名。<%@ Register tagprefix="tagprefix" Namespace="namespace" Assembly="assembly" %> <%@ Register tagprefix="tagprefix" Tagname="tagname" Src="pathname" %>
@Assembly指令 把程序集链接到与他相关的页面或用户控件上
<%@ Assembly Name="assemblyname" %>
<%@ Assembly Src="pathname" %>@MasterType指令 把类名与页面关联,获得包含在特定master页面中的强类型化的引用或者成员
@MasterType指令把一个类名关联到ASP.NET页面上,以获得特定master页面中包含的强类型化引用或成员。这个指令支持两个属性:
● TypeName:设置从中获得强类型化的引用或成员的派生类名。
● VirtualPath:设置从中检索这些强类型化的引用或成员的页面地址。
使用@MasterType指令的细节请参阅第8章。下面是它的一个例子:
<%@ MasterType VirtualPath="~/Wrox.master" %>
@OutputCache指令 控制页面或用户控件输出的高速缓存策略
Duration
页或用户控件进行缓存的时间(以秒计)。在页或用户控件上设置该属性为来自对象的 HTTP 响应建立了一个过期策略,并将自动缓存页或用户控件输出。
注意 该属性是必需的。如果未包含该属性,将出现分析器错误。
Location
OutputCacheLocation 枚举值之一。默认值为 Any。
警告 包含在用户控件(.ascx 文件)中的 @ OutputCache 指令不支持此属性。
Shared
一个布尔值,确定用户控件输出是否可以由多个页共享。默认值为 false。有关详细信息,请参见备注部分。
注意 包含在 ASP.NET 页(.aspx 文件)中的 @ OutputCache 指令不支持此属性。
VaryByCustom
表示自定义输出缓存要求的任意文本。如果赋予该属性的值是 browser,缓存将随浏览器名称和主要版本信息的不同而不同。如果输入了自定义字符串,您必须在应用程序的 Global.asax 文件中重写 HttpApplication.GetVaryByCustomString 方法。
VaryByHeader
分号分隔的 HTTP 标头列表,用于使输出缓存发生变化。当将该属性设为多标头时,对于每个指定的标头,输出缓存都包含一个请求文档的不同版本。
注意 设置 VaryByHeader 属性在所有 HTTP 1.1 缓存中启用缓存项,而不仅限于 ASP.NET 缓存。用户控件中的 @ OutputCache 指令不支持此属性。
VaryByParam
分号分隔的字符串列表,用于使输出缓存发生变化。默认情况下,这些字符串与用 GET 方法属性发送的查询字符串值对应,或与用 POST 方法发送的参数对应。当将该属性设置为多参数时,对于每个指定的参数,输出缓存都包含一个请求文档的不同版本。可能的值包括 none、* 和任何有效的查询字符串或 POST 参数名称。
警告 在输出缓存 ASP.NET 页时,该属性是必需的。它对于用户控件也是必需的,除非已经在用户控件的 @ OutputCache 指令中包含了 VaryByControl 属性。如果没有包含它,则发生分析器错误。如果您不想使缓存内容随任何指定参数发生变化,请将该值设为 none。如果要使输出缓存根据所有参数值发生变化,请将属性设置为 *。
VaryByControl
一个分号分隔的字符串列表,用于更改用户控件的输出缓存。这些字符串代表在用户控件中声明的 ASP.NET 服务器控件的 ID 属性值。
注意 除非已经包含了 VaryByParam 属性,否则在用户控件 @ OutputCache 指令中,该属性是必需的。ASP.NET 页中的 @ OutputCache 指令不支持该属性。
<%@ OutputCache Duration="100" VaryByParam="none" %>@Reference指令 把页面或用户控件链接到当前的页面或者用户控件上
@PrviousPageType 允许asp.net页面处理应用程序中另一个页面的回送信息
这个指令用于指定跨页面的传送过程起始于哪个页面。在ASP.NET页面之间的跨页面传送过程详见后面的“跨页面传送”一节和第19章。
@PreviousPageType指令是一个新指令,用于处理ASP.NET 2.0提供的跨页面传送新功能。这个简单的指令只包含两个属性TypeName和VirtualPath:
● TypeName:设置回送时的派生类名。
● VirtualPath:设置回送时所传送页面的地址。
asp.net页面事件
PreInit 预初始化
Init 初始化
InitComplete 初始化完成
PreLoad 预加载
Load 加载
LoadComplete 加载完成
PreRender 预输出
PreRenderComplete 输出完成
Unload 卸载
AbortTransation 终止事务
CommitTransation 提交事务
DataBinding 数据绑定
Disposed 销毁
Error 错误
-
Page
-
Web 窗体页,ASP.NET 应该在运行时根据它动态编译和链接当前页。
-
Control
-
用户控件,ASP.NET 应该在运行时根据它动态编译和链接当前页。
-
<%@ Reference page | control="pathtofile" %>
-
Name
-
表示要链接到页的程序集名称的字符串。
注意 程序集名称不包括文件扩展名。
-
Src
-
要动态编译和链接的源文件的路径。
注意 不能在同一个 @ Assembly 指令中包含 Name 和 Src 属性。如果您要使用这两个属性,页上必须包含多个指令。