该指令只能在 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 对象实例的建议方法。
<%@ 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.
}
<%@ 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> 元素在全局范围内定义页指令。 |