雄风—3导弹误射事件:ASP.NET页面支持的指令

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 13:10:27
页面的处理指令
页面指令的处理用于配置执行该页面的运行时环境。在ASP.NET中,指令可以位于页面的任何位置,但良好且常见的习惯是将其置于文件的开始部分。除此,页面指令的名称是不区分大小写的,且指令的属性(attribute)值也不必加引号。@Page是ASP.NET中最重要的也是最常用的指令。表3.4列出了所有ASP.NET指令。 【101~102】
表3.4 ASP.NET页面支持的指令
指 令
说 明
@Assembly
用于将程序集链接到当前页面或用户控件上
@Control
用于定义控件特有的属性(attribute),这些属性会控制控件编译器的行为
@Implements
用于指示当前页面或当前用户控件实现指定的.NET Framework 接口
@Import
用于显式地将命名空间导入到页面或用户控件中
@Master
用于指示将当前页面标识为ASP.NET母版页(详见第6章)。ASP.NET 1.x不支持该指令
@MasterType
当通过Master属性(property)访问ASP.NET母版页时,它会为该母版页提供一种创建强类型引用的方式(详见第6章)。ASP.NET 1.x不支持该指令
@OutputCache
用于控制页面或用户控件的输出缓存策略(详见第16章)
@Page
用于定义页面特有的属性,以便控制处理该页面的页面编辑器和语言解析器的行为
@PreviousPageType
提供了一种获取之前的页面强类型引用的方式,通过PreviousPage属性便可以对之前的页面进行访问
@Reference
用于将页面或用户控件链接到当前页面或用户控件上
@Register
用于在页面或控件中创建自定义标签。新的标签(包括前缀和名称)会将命名空间和用户定义的控件关联起来
 
除@Page、 @PreviousPageType、@Master、@MasterType和@Control外,所有指令都可以在页面和控件中声明。@Page和 @Control是互斥的:@Page仅能用在.aspx文件中,而@Control指令仅能用在.ascx文件中。@Master用于定义一种非常特殊的页面——母版页(master page)。
处理指令的语法较特殊,但对于所有指令类型都是一致的。多个属性(attribute)必须用空白分割,属性与值间的等号(=)两边不能有空白,如下所示:
<%@ Directive_Name attribute="value" [attribute="value" … ] %> 【103】
每种指令都有自己类型化的属性集合。将错误类型的值赋给一个属性,或在某个属性中使用错误的属性,都会导致编译错误。
要点:指令的属性内容总是以纯文本的形式被解析。然而,对于某些属性,应包含能够被解析为特定.NET Framework类型的值。当ASP.NET页面被解析时,所有指令属性
会被提取,并存储在一个字典中。属性的名称和数目必须与该指令所对应模式相匹配。只要用字符串表示的属性值能够被转换为目标类型,那么它便是有效的。例如,如果某个属性只接受布尔(Boolean)类型的值,则只有true和false是有效的。
@Page指令
@Page指令只能在.aspx页面中使用,若在其他ASP.NET页(如控件和Web服务)中使用,会导致编译错误。每个.aspx文件最多只能包含一个@Page指令。虽然从语法的角度看,没有必要强制要求指定该指令,但实际几乎所有复杂的页都这样做。
@Page指令大约有30个属性,它们从逻辑上可以分为三类:编译(详见表3.5)、页面整体行为(详见表3.6)和页面输出(详见表3.7)。每个ASP.NET页在第一次请求时进行编译,实际发送给浏览器的HTML是类的方法生成的,而这些类也是动态生成的。表3.5所列的属性用于对编译器参数进行调整,并能够选择要使用的语言。
表3.5 用于页面编译的@Page指令属性
属 性
说 明
ClassName
用于指定页面被请求时动态生成的类的名称。它必须是不带命名空间信息的类名
CodeFile
用于提示当前页面代码隐藏类的路径。该类文件必须被部署到Web服务器上。ASP.NET 1.x不支持该属性
CodeBehind
Visual Studio .NET 2003使用的属性,用于提示当前页面代码隐藏类的路径。该类文件会被编译为可部署的程序集(对2.0或更高版本的ASP.NET来说,应使用 CodeFile属性)
CodeFileBaseClass
用于指定页的基类及其关联的代码隐藏类的基类名称。该属性是可选的,但如果使用了CodeFile属性,则必须指定该属性。ASP.NET 1.x不支持该属性
CompilationMode
用于指示当前页面是否在运行时编译。ASP.NET 1.x不支持该属性
CompilerOptions
用于编译当前页的一系列编译器命令行参数
Debug
一个布尔值,用于指示是否应使用调试符号编译该页
Explicit
一个布尔值,用于确定在编译该页时是否将Visual Basic的Option Explicit模式设置为On。Option Explicit会强制编程人员显式声明所有变量。如果当前页所选语言不是Visual Basic .NET,该属性将被忽略
Inherits
用于定义当前页要继承的基类,它可以为从Page类派生的任何类
Language
用于在编译时提示内联代码块(<% … %>)和