定义 ASP.NET 页分析器和编译器使用的页特定(.aspx 文件)属性。
<%@ Page attribute="value" [attribute="value"...] %>
属性
Async
使页成为异步处理程序(即,导致页使用 IHttpAsyncHandler 的实现来处理请求)。
默认值为 false。
AsyncTimeOut
定义在处理异步任务时使用的超时时间间隔(以秒为单位)。默认值为 45 秒。
该值必须是整数。
AspCompat
当设置为 true 时,允许在单线程单元 (STA) 线程上执行页。这允许页调用 STA 组件,例如用 Microsoft Visual Basic 6.0 开发的组件。将该属性设为 true 还允许页调用 COM+ 1.0 版组件,该组件要求可以访问非托管 Active Server Pages (ASP) 内置对象。可以通过 ObjectContext 对象或 OnStartPage 方法访问它们。默认值为 false。
注意
将该属性设置为 true 可能导致页的性能降低。有关更多信息,请参见“备注”一节。
AutoEventWireup
指示页的事件是否自动绑定。如果启用了事件自动绑定,则为 true;否则为 false。默认值为 true。有关更多信息,请参见 ASP.NET Web 服务器控件事件模型。
Buffer
确定是否启用了 HTTP 响应缓冲。如果启用了页缓冲,则为 true;否则为 false。
默认值为 true。
ClassName
一个字符串,指定在请求页时将自动进行动态编译的页的类名。此值可以是任何有效的类名,并且可以包括类的完整命名空间(完全限定的类名)。如果未指定该属性的值,则已编译页的类名将基于页的文件名。
其他页可以通过使用 @ Reference 指令来引用分配给第一页的类名。
ClientTarget
指示 ASP.NET 服务器控件应该为其呈现内容的目标用户代理(通常是 Web 浏览器,例如 Microsoft Internet Explorer)。该值可以是应用程序配置文件的 <clientTarget> 节中定义的任何有效别名。
CodeBehind
指定包含与页关联的类的已编译文件的名称。该属性不能在运行时使用。
注意
提供此属性是为了与以前版本的 ASP.NET 的兼容,以实现代码隐藏功能。在 ASP.NET 2.0 版中,应改用 CodeFile 属性指定该源文件的名称,同时使用 Inherits 属性指定该类的完全限定名称。
CodeFile
指定指向页引用的代码隐藏文件的路径。此属性与 Inherits 属性一起使用可以将代码隐藏源文件与网页相关联。此属性仅对编译的页有效。
CodeFileBaseClass
指定页的基类及其关联的代码隐藏类的路径。此属性是可选的,但如果使用此属性,则必须同时使用 CodeFile 属性。如果希望实现以下共享方案,可使用该属性:在该共享方案中,您在基类中定义通用字段(可以选择性地定义关联事件)以引用在网页中声明的控件。出于 ASP.NET 代码生成模型的缘故,如果您在基类中定义字段时没有使用该属性,则编译时将为在网页中(在单独的分部类存根中)声明的控件生成新的成员定义,而您希望的方案将无法生效。但是,如果您使用 CodeFileBaseClass 属性将基类与页相关联,并且您的分部类(其名称分配给 Inherits 属性,并且其源文件由 CodeFile 属性引用)是从该基类继承的,则该基类中的字段在代码生成之后将能够引用页上的控件。
CodePage
指示用于响应的编码方案的值。该值是一个用作编码方案 ID 的整数。有关可能的 CodePage ID 的列表,请参见 Encoding 类。
CompilationMode
设置是否应使用指定多个枚举选项之一的字符串来编译页。默认值为 Always,因此,默认情况下编译 .aspx 页。有关详细信息,请参见 CompilationMode 枚举。
CompilerOptions
包含用于编译页的编译器选项的字符串。在 C# 和 Visual Basic 中,这是编译器命令行开关的序列。有关编译器选项的更多信息,请参见 C# 编译器选项或 Visual Basic 编译器。
ContentType
将响应的 HTTP 内容类型定义为标准的 MIME 类型。支持任何有效的 HTTP 内容类型字符串。有关可能值的列表,请在 MSDN Library 中搜索 MIME。
Culture
指示页的区域性设置。该属性的值必须是有效的区域性 ID。注意,LCID 和 Culture 属性是互相排斥的;如果使用了其中一个属性,就不能在同一页中使用另一个属性。有关可能的区域性值的更多信息,请参见 CultureInfo 类。
Debug
指示是否应使用调试符号编译该页。如果应使用调试符号编译该页,则为 true;否则为 false。由于此设置影响性能,因此只应在开发期间将此属性设置为 true。
Description
提供该页的文本说明。ASP.NET 分析器忽略该值。
EnableEventValidation
在回发方案中启用事件验证。如果验证事件,则为 true;否则为 false。默认值为 true。
EnableSessionState
定义页的会话状态要求。如果启用了会话状态,则为 true;如果可以读取会话状态但不能进行更改,则为 ReadOnly;否则为 false。默认值为 true。这些值是不区分大小写的。有关更多信息,请参见 ASP.NET 会话状态。
EnableTheming
指示是否在页上使用主题。如果使用主题,则为 true;否则为 false。默认值为 true。
EnableViewState
指示是否在页请求之间保持视图状态。如果要保持视图状态,则为 true;否则为 false。默认值为 true。
EnableViewStateMac
指示当页从客户端回发时,ASP.NET 是否应该对页的视图状态运行计算机身份验证检查 (MAC)。如果应该对视图状态运行 MAC 检查,则为 true;否则为 false。默认值为 false。
注意
视图状态 MAC 是隐藏变量的加密版本,当某页被发送到浏览器时,该页的视图状态永久保持到该变量中。当您将此属性设置为 true 时,将检查加密的视图状态以验证它在客户端未被篡改。注意,将此属性设置为 true 会影响性能,因为在页的每次往返行程中,都必须加密和解密变量值。
ErrorPage
定义在出现未处理页异常时用于重定向的目标 URL。
Explicit
确定是否使用 Visual Basic Option Explicit 模式来编译页。如果启用了 Visual Basic 显式编译选项,且所有变量必须使用 Dim、Private、Public 或 ReDim 语句来声明,则为 true;否则为 false。默认值为 false。
注意
除了 Visual Basic,所有其他语言都忽略该属性。此外,该选项在 Machine.config 配置文件中被设置为 true。有关更多信息,请参见计算机配置文件。
Inherits
定义供页继承的代码隐藏类。它可以是从 Page 类派生的任何类。它与 CodeFile 属性(包含指向代码隐藏类的源文件的路径)一起使用。有关代码隐藏类的更多信息,请参见 ASP.NET 网页代码模型。
Language
指定在对页中的所有内联呈现(<% %> 和 <%= %>)和代码声明块进行编译时使用的语言。值可以表示任何 .NET Framework 支持的语言,包括 Visual Basic、C# 或 JScript。每页只能使用和指定一种语言。
LCID
定义 Web 窗体页的区域设置标识符。
注意
区域设置标识符是一个 32 位值,该值唯一地定义某个区域设置。除非您使用该属性为 Web 窗体页指定不同的区域设置,否则 ASP.NET 使用 Web 服务器默认的区域设置。注意,LCID 和 Culture 属性是互相排斥的;如果使用了其中一个属性,就不能在同一页中使用另一个属性。有关区域设置的更多信息,请搜索 MSDN Library。
LinePragmas
确定运行库是否应在源代码中生成行杂注。这些是编译器选项,调试工具通常使用这些选项来标记源文件中的特定位置。如果应该生成行杂注,则为 true;否则为 false。
MaintainScrollPositionOnPostback
指示在回发后是否将用户返回到客户端浏览器中的同一位置。如果应该将用户返回到同一位置,则为 true;否则为 false。默认值为 false。
注意
开发人员可以通过设置 Web.config 文件的 <pages> 元素上的 maintainScrollPostitionOnPostback 属性(注意,此属性在配置文件中是区分大小写的),为所有页定义该属性。
MasterPageFile
设置内容页的母版页或嵌套母版页的路径。支持相对路径和绝对路径。
ResponseEncoding
指示用于包含页内容的 HTTP 响应的编码方案的名称。分配给该属性的值是有效的编码名称。有关可能的编码名称的列表,请参见 Encoding 类。您也可以调用 GetEncodings 方法来获取可能的编码名称和 ID 的列表。
SmartNavigation
指示页是否支持 Internet Explorer 5.5 或更高版本的智能导航功能。如果启用了智能导航,则为 true;否则为 false。默认值为 false。
您也可以在代码中设置页的 SmartNavigation 属性 (Property),但通常应该将属性 (Attribute) 与 @ Page 指令一起使用来设置该属性 (Property)。有关该功能如何改进用户在网页上的导航体验的更多信息,请参见 SmartNavigation 属性。
Src
指定包含链接到页的代码的源文件的路径。在链接的源文件中,可以选择将页的编程逻辑包含在类中或代码声明块中。
可以使用 Src 属性将生成提供程序链接到页。有关更多信息,请参见 BuildProvider 类。另外,在低于 2.0 版的 ASP.NET 中,Src 属性是另一种将代码隐藏文件链接到页的方法。在 ASP.NET 2.0 中,将代码隐藏源文件链接到页的首选方法是使用 Inherits 属性来指定类,并使用 CodeFile 属性来指定该类的源文件的路径。
Strict
指示应使用 Visual Basic OptionStrict 模式来编译页。如果启用了 Option Strict,则为 true;否则为 false。默认值为 false。
注意
除了 Visual Basic,所有其他语言都忽略该属性。
StyleSheetTheme
指定在页上使用的有效主题标识符。如果设置了 StyleSheetTheme 属性,则单独的控件可以重写主题中包含的样式设置。这样,主题可以提供站点的整体外观,同时,利用 StyleSheetTheme 属性中包含的设置可以自定义页及其各个控件的特定设置。
TargetSchema
指定用于验证页内容的方案的名称。此属性仅起描述性的作用,而不会真正执行验证;分析器将忽略此属性。
Theme
指定在页上使用的有效主题标识符。如果设置 Theme 属性时没有使用 StyleSheetTheme 属性,则将重写控件上的单独的样式设置,允许您创建统一而一致的页外观。
Title
指定在响应的 HTML <title> 标记中呈现的页的标题。也可以通过编程方式将标题作为页的属性来访问。有关详细信息,请参见 Title 属性。
Trace
指示是否启用跟踪。如果启用了跟踪,则为 true;否则为 false。默认值为 false。有关更多信息,请参见 ASP.NET 跟踪。
TraceMode
指示当启用跟踪时如何为页显示跟踪消息。可能的值为 SortByTime 和 SortByCategory。当启用跟踪时,默认值为 SortByTime。有关跟踪的更多信息,请参见 ASP.NET 跟踪。
Transaction
指示在页上是否支持事务。可能的值有 Disabled、NotSupported、Supported、Required 和 RequiresNew。默认值为 Disabled。
UICulture
指定用于页的用户界面 (UI) 区域性设置。支持任何有效的 UI 区域性值。
ValidateRequest
指示是否应发生请求验证。如果为 true,请求验证将根据具有潜在危险的值的硬编码列表检查所有输入数据。如果出现匹配情况,将引发 HttpRequestValidationException 异常。默认值为 true。
该功能在计算机配置文件 (Machine.config) 中启用。可以在应用程序配置文件 (Web.config) 中或在页上将该属性设置为 false 来禁用该功能。
注意
该功能有助于减少对简单页或 ASP.NET 应用程序进行跨站点脚本攻击的风险。如果应用程序不能正确验证用户输入,则可能会受到多种类型的格式错误的输入的攻击,包括跨站点脚本攻击和 Microsoft SQL Server 注入式攻击。应该仔细地评估应用程序中所有形式的输入,并确保对它们进行了正确地验证和编码,或者确保应用程序在处理数据或将信息发送回客户端之前已退出。除此之外,别无它法。
ViewStateEncryptionMode
使用三个可能的枚举值来确定如何加密视图状态:Auto、Always 或 Never。默认值为 Auto,表示如果单个控件请求进行加密,将加密视图状态。有关更多信息,请参见 ViewStateEncryptionMode 枚举。
WarningLevel
指示您希望编译器将警告视为错误(从而中止对页进行编译)的编译器警告等级。可能的警告等级为 0 到 4。有关更多信息,请参见 WarningLevel 属性。
备注
该指令只能在 Web 窗体页中使用。每个 .aspx 文件只能包含一条 @ Page 指令。此外,每条 @ Page 指令只能定义一个 Language 属性,因为每页只能使用一种语言。由于在源代码或配置文件中,大多数属性都提供了最常用的默认值,因此通常不需要向指令添加大量属性。通常,应该添加指定希望页具有的功能所需的最小属性集。如果有一个想应用于所有页的公共属性(例如,希望在所有页上启用跟踪),请考虑在 Web.config 文件中启用相应的功能,而不是向每个单独的页添加 Trace 属性。
注意
@ Page 指令具有大量与应用于整个源文件的其他指令(例如,在 Web 用户控件的 .ascx 文件中使用的 @ Control 指令和在母版页的 .master 文件中使用的 @ Master 指令)共用的属性。
若要定义 @ Page 指令的多个属性,请使用一个空格分隔每个属性/值对。对于特定属性,不要在将该属性与其值相连的等号 (=) 两侧加空格。有关示例,请参见本主题的“示例”部分。
智能导航是 ASP.NET 的一个功能,Internet Explorer 5.5 和更高版本的浏览器都支持该功能。它使得在对页进行刷新时,仍可保持导航之间的滚动位置和元素焦点。这样就只有一页存储在浏览器历史记录中,也就不再有因刷新网页引起的常见的闪烁问题。智能导航在 ASP.NET 页中的使用效果最好,因为 ASP.NET 页要求频繁地回发,但可视化内容在返回时并不显著改变。在决定是否将该属性设置为 true 时,请认真考虑这一点。
当页的 AspCompat 属性设置为 true 时,如果计划请求之前使用构造函数创建了 COM 组件,该请求将在多线程单元 (MTA) 线程上运行。这样会导致 Web 服务器性能明显下降。若要避免此问题,请只在一个 Page 事件(例如 Page_Load、Page_Init 等)或一个 Page 方法中创建 COM 组件。还应确保不要在构造页时创建对象。
下面的代码示例演示一个在启用 AspCompat 的情况下在页中创建 COM 对象实例的建议方法。
C#
<%@ Page AspCompat="true" language="C#" %>
<script runat="server" >
MyComObject comObj;
public void Page_Load(){
// Use comObj here when the code is running on the STA thread pool.
comObj = New MyComObject();
// Do something with the combObj object.
}
Visual Basic
<%@ Page AspCompat="true" language="VB" %>
<script runat="server" >
Dim comObj As MyComObject
Public Sub Page_Load()
'Use comObj here when the code is running on the STA thread pool.
comObj = New MyComObject()
' Do something with the combObj object.
End Sub
</script>
注意
向母版页添加 @ Master 指令并不能使您可以在依赖该母版页的页中使用相同的指令声明。应改用 <pages> 元素在全局范围内定义页指令。
示例
下面的代码示例指示 ASP.NET 页编译器使用 Visual Basic 作为页的服务器端代码语言,并将传输到客户端的默认 HTTP MIME ContentType 属性设置为 "text/xml"。
<%@ Page Language="VB" ContentType="text/xml" %>