Page 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示一个从托管 ASP.NET Web 应用程序的服务器请求的 .aspx 文件(也称为 Web 窗体页)。
public ref class Page : System::Web::UI::TemplateControl, System::Web::IHttpHandler
public class Page : System.Web.UI.TemplateControl, System.Web.IHttpHandler
type Page = class
inherit TemplateControl
interface IHttpHandler
Public Class Page
Inherits TemplateControl
Implements IHttpHandler
- 继承
- 派生
- 实现
示例
本主题附带了一个包含源代码的 Visual Studio 网站项目: 下载。
下面的代码示例演示了如何在 Page 代码隐藏页模型中使用 类。 请注意,代码隐藏源文件声明了从基页类继承的分部类。 基页类可以是 Page,也可以是派生自 Page的另一个类。 此外,请注意,分部类允许代码隐藏文件使用页面上定义的控件,而无需将它们定义为字段成员。
using System;
public partial class MyCodeBehindCS : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Place page-specific code here.
}
// Define a handler for the button click.
protected void SubmitBtn_Click(object sender, EventArgs e)
{
MySpan.InnerHtml = "Hello, " + MyTextBox.Text + ".";
}
}
Partial Class MyCodeBehindVB
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' Place page-specific code here.
End Sub
' Define a handler for the button click.
Protected Sub SubmitBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyButton.Click
MySpan.InnerHtml = "Hello, " + MyTextBox.Text + "."
End Sub
End Class
下面的代码示例演示与前面的代码隐藏源文件对应的 .aspx 文件。
重要
此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,ASP.NET 网页验证用户输入是否不包含脚本或 HTML 元素。 有关详细信息,请参阅脚本侵入概述。
<%@ Page Language="C#" CodeFile="pageexample.aspx.cs" Inherits="MyCodeBehindCS" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Page Class Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td> Name: </td>
<td> <asp:textbox id="MyTextBox" runat="server"/> </td>
</tr>
<tr>
<td></td>
<td><asp:button id="MyButton" text="Click Here" onclick="SubmitBtn_Click" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><span id="MySpan" runat="server" /></td>
</tr>
</table>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" CodeFile="pageexample.aspx.vb" Inherits="MyCodeBehindVB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Page Class Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td> Name: </td>
<td> <asp:textbox id="MyTextBox" runat="server"/> </td>
</tr>
<tr>
<td></td>
<td><asp:button id="MyButton" text="Click Here" onclick="SubmitBtn_Click" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><span id="MySpan" runat="server" /></td>
</tr>
</table>
</div>
</form>
</body>
</html>
必须使用 @ Page 指令并使用 Inherits
和 CodeFile
属性将代码隐藏文件链接到.aspx文件。 在此示例中, Inherits
属性指示 MyCodeBehind
类, CodeFile
特性指示包含 类的语言特定文件的路径。
下面的代码示例演示了单文件页模型,以及如何访问 IsPostBack 的 属性和 Response 属性 Page。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
if (Page.IsPostBack)
sb.Append("You posted back to the page.<br />");
sb.Append("The host address is " + Page.Request.UserHostAddress + ".<br />");
sb.Append("The page title is \"" + Page.Header.Title + "\".");
PageMessage.Text = sb.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Page Class Example</title>
</head>
<body>
<form id="form1"
runat="server">
<div>
<asp:Label id="PageMessage"
runat="server"/>
<br /> <br />
<asp:Button id="PageButton"
Text="PostBack"
runat="server" />
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim sb As New StringBuilder()
If (Page.IsPostBack) Then
sb.Append("You posted back to the page.<br />")
End If
sb.Append("The host address is " + Page.Request.UserHostAddress + ".<br />")
sb.Append("The page title is """ + Page.Header.Title + """.")
PageMessage.Text = sb.ToString()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Page Class Example</title>
</head>
<body>
<form id="form1"
runat="server">
<div>
<asp:Label id="PageMessage"
runat="server"/>
<br /> <br />
<asp:Button id="PageButton"
Text="PostBack"
runat="server" />
</div>
</form>
</body>
</html>
注解
类 Page 与扩展名为 .aspx 的文件相关联。 这些文件在运行时编译为 Page 对象,并缓存在服务器内存中。
如果要使用代码隐藏技术创建 Web 窗体页,请派生自此类。 快速应用程序开发 (RAD) 设计器(如 Microsoft Visual Studio)自动使用此模型创建 Web 窗体页面。
对象 Page 充当页面中所有服务器控件的命名容器,实现 接口的控件或实现此接口的控件的子控件除外 INamingContainer 。
类 Page 是一个控件,它充当 Web 应用程序的用户界面,因此应仔细检查以确保遵循编写安全代码和保护应用程序的最佳做法。 有关这些主题的一般信息,请参阅 Web 应用程序安全威胁概述、 安全策略最佳做法和 关键安全概念。 有关更具体的信息,请参阅 保护标准控件、 如何:显示安全错误消息、 如何:通过对字符串应用 HTML 编码在 Web 应用程序中防止脚本攻击和 验证控件简介。
构造函数
Page() |
初始化 Page 类的新实例。 |
字段
postEventArgumentID |
一个定义呈现的页中的 EVENTARGUMENT 隐藏字段的字符串。 |
postEventSourceID |
一个定义呈现的页中的 EVENTTARGET 隐藏字段的字符串。 |
属性
Adapter |
获取控件的浏览器特定适配器。 (继承自 Control) |
Application |
为当前 Web 请求获取 HttpApplicationState 对象。 |
AppRelativeTemplateSourceDirectory |
获取或设置包含该控件的 Page 或 UserControl 对象的应用程序相对虚拟目录。 (继承自 Control) |
AppRelativeVirtualPath |
获取或设置从中解析和编译控件的文件的相对于应用程序的虚拟目录路径。 (继承自 TemplateControl) |
AspCompatMode |
设置一个值,它指示页是否可在单线程单元 (STA) 线程上执行。 |
AsyncMode |
设置一个指示对页进行同步还是异步处理的值。 |
AsyncTimeout |
获取或设置一个值,它指示处理异步任务时使用的超时间隔。 |
AutoHandlers |
已过时.
ASP.NET 2.0 中已弃用 AutoHandlers 属性。 它是由生成的类使用的,不应在代码中使用。 (继承自 TemplateControl) |
AutoPostBackControl |
获取或设置页中用于执行回发的控件。 |
BindingContainer |
获取包含该控件的数据绑定的控件。 (继承自 Control) |
Buffer |
设置指示是否对页输出进行缓冲处理的值。 |
Cache |
获取与该页驻留的应用程序关联的 Cache 对象。 |
ChildControlsCreated |
获取一个值,该值指示是否已创建服务器控件的子控件。 (继承自 Control) |
ClientID |
获取由 ASP.NET 生成的 HTML 标记的控件 ID。 (继承自 Control) |
ClientIDMode |
获取或设置用于生成 ClientID 属性值的算法。 (继承自 Control) |
ClientIDSeparator |
获取一个字符值,该值表示 ClientID 属性中使用的分隔符字符。 (继承自 Control) |
ClientQueryString |
获取请求的 URL 的查询字符串部分。 |
ClientScript |
获取用于管理脚本、注册脚本和向页添加脚本的 ClientScriptManager 对象。 |
ClientTarget |
获取或设置一个值,该值使您得以重写对浏览器功能的自动检测,并指定针对特定的浏览器客户端页的呈现方式。 |
CodePage |
设置当前 Page 的代码页标识符。 |
ContentType |
设置与页关联的 HttpResponse 对象的 HTTP MIME 类型。 |
Context |
获取与该页关联的 HttpContext 对象。 |
Controls |
获取 ControlCollection 对象,该对象表示 UI 层次结构中的指定服务器控件的子控件。 (继承自 Control) |
Culture |
设置与页关联的 Thread 对象的区域性 ID。 |
DataItemContainer |
如果命名容器实现 IDataItemContainer,则获取对命名容器的引用。 (继承自 Control) |
DataKeysContainer |
如果命名容器实现 IDataKeysControl,则获取对命名容器的引用。 (继承自 Control) |
DesignMode |
获取一个值,该值指示是否正在使用设计图面上的一个控件。 (继承自 Control) |
EnableEventValidation |
获取或设置一个值,该值指示页面验证回发事件,还是验证回调事件。 |
EnableTheming |
获取或设置一个布尔值,该值指示主题是否应用于派生自 TemplateControl 类的控件。 (继承自 TemplateControl) |
EnableViewState |
获取或设置一个值,该值指示当前页请求结束时该页是否保持其视图状态以及它包含的任何服务器控件的视图状态。 |
EnableViewStateMac |
获取或设置一个值,该值指示从客户端回发页时,ASP.NET 是否应在页的视图状态下检查消息身份验证代码 (MAC)。 |
ErrorPage |
获取或设置错误页,在发生未处理的页异常的事件时请求浏览器将被重定向到该页。 |
Events |
获取控件的事件处理程序委托列表。 此属性为只读。 (继承自 Control) |
FileDependencies |
已过时.
设置当前的 HttpResponse 对象所依赖的文件的数组。 |
Form |
获取页的 HTML 窗体。 |
HasChildViewState |
获取一个值,该值指示当前服务器控件的子控件是否具有任何已保存的视图状态设置。 (继承自 Control) |
Header |
在页声明中用 |
ID |
获取或设置 Page 类的特定实例的标识符。 |
IdSeparator |
获取在为页上的控件构造唯一 ID 时用于分隔控件标识符的字符串。 |
IdSeparator |
获取用于分隔控件标识符的字符。 (继承自 Control) |
IsAsync |
获取一个值,该值指示是否异步处理页。 |
IsCallback |
获取一个值,该值指示页请求是否是回调的结果。 |
IsChildControlStateCleared |
获取一个值,该值指示该控件中包含的控件是否具有控件状态。 (继承自 Control) |
IsCrossPagePostBack |
获取一个值,该值指示跨页回发中是否涉及该页。 |
IsPostBack |
获取一个值,该值指示页是第一次呈现还是为了响应回发而加载。 |
IsPostBackEventControlRegistered |
获取一个值,该值指示页中执行回发的控件是否经过注册。 |
IsReusable |
获取一个值,该值指示 Page 对象是否可重用。 |
IsTrackingViewState |
获取一个值,用于指示服务器控件是否会将更改保存到其视图状态中。 (继承自 Control) |
IsValid |
获取一个值,该值指示页验证是否成功。 |
IsViewStateEnabled |
获取一个值,该值指示是否为该控件启用了视图状态。 (继承自 Control) |
Items |
获取存储在页上下文中的对象的列表。 |
LCID |
设置与页关联的 Thread 对象的区域设置标识符。 |
LoadViewStateByID |
获取一个值,该值指示控件是否通过 ID 而不是索引参与加载其视图状态。 (继承自 Control) |
MaintainScrollPositionOnPostBack |
获取或设置一个值,该值指示是否在回发后将用户返回到客户端浏览器中的同一位置。 此属性取代了已过时的 SmartNavigation 属性。 |
Master |
获取确定页的整体外观的母版页。 |
MasterPageFile |
获取或设置母版页的虚拟路径。 |
MaxPageStateFieldLength |
获取或设置页状态字段的最大长度。 |
MetaDescription |
获取或设置“描述” |
MetaKeywords |
获取或设置“关键字” |
ModelBindingExecutionContext |
获取模型绑定器的执行上下文。 |
ModelState |
获取包含模型状态和模型绑定验证状态的模型状态字典对象。 |
NamingContainer |
获取对服务器控件的命名容器的引用,此引用创建唯一的命名空间,以区分具有相同 ID 属性值的服务器控件。 (继承自 Control) |
Page |
获取对包含服务器控件的 Page 实例的引用。 (继承自 Control) |
PageAdapter |
获取为特定的请求浏览器呈现页的适配器。 |
PageStatePersister |
获取与该页关联的 PageStatePersister 对象。 |
Parent |
获取对页 UI 层次结构中服务器控件的父控件的引用。 (继承自 Control) |
PreviousPage |
获取向当前页传输控件的页。 |
RenderingCompatibility |
获取一个值,该值指定呈现的 HTML 将与之兼容的 ASP.NET 版本。 (继承自 Control) |
Request |
获取所请求的页面的 HttpRequest 对象。 |
Response |
获取与 Page 对象关联的 HttpResponse 对象。 使用此对象,可以将 HTTP 响应数据发送到客户端,并包含此响应的相关信息。 |
ResponseEncoding |
设置当前的 HttpResponse 对象的编码语言。 |
RouteData |
获取当前 RouteData 实例的 RequestContext 值。 |
Server |
获取 |
Session |
获取 ASP.NET 提供的当前 |
Site |
获取容器信息,该容器在呈现于设计图面上时承载当前控件。 (继承自 Control) |
SkinID |
获取或设置要应用于控件的外观。 (继承自 Control) |
SkipFormActionValidation |
获取或设置一个值,该值指示是否已对查询字符串字段进行验证。 |
SmartNavigation |
已过时.
获取或设置指示是否启用了智能导航的值。 此属性已弃用。 |
StyleSheetTheme |
获取或设置页面生命周期早期适用于页面的主题的名称。 |
SupportAutoEvents |
获取一个值,该值指示 TemplateControl 控件是否支持自动事件。 (继承自 TemplateControl) |
TemplateControl |
获取或设置对包含该控件的模板的引用。 (继承自 Control) |
TemplateSourceDirectory |
获取包含当前服务器控件的 Page 或 UserControl 的虚拟目录。 (继承自 Control) |
Theme |
获取或设置页主题的名称。 |
Title |
获取或设置该页标题。 |
Trace |
为当前 Web 请求获取 TraceContext 对象。 |
TraceEnabled |
设置一个值,该值指示是否为 Page 对象启用跟踪。 |
TraceModeValue |
设置跟踪语句在页中的显示模式。 |
TransactionMode |
设置该页的事务支持的级别。 |
UICulture |
设置与页关联的 Thread 对象的用户界面 (UI) ID。 |
UniqueFilePathSuffix |
获取要追加到用于缓存浏览器的文件路径的唯一后缀。 |
UniqueID |
获取服务器控件的唯一的、以分层形式限定的标识符。 (继承自 Control) |
UnobtrusiveValidationMode |
获取或设置一个值,该值指示不显眼的 JavaScript 是否用于客户端验证。 |
User |
获取有关发出页请求的用户的信息。 |
ValidateRequestMode |
获取或设置指示页面是否检查来自浏览器的客户端输入是否具有潜在危险值的值。 |
ValidateRequestMode |
获取或设置指示控件是否检查来自浏览器的客户端输入是否具有潜在危险值的值。 (继承自 Control) |
Validators |
获取请求的页上包含的全部验证控件的集合。 |
ViewState |
获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。 (继承自 Control) |
ViewStateEncryptionMode |
获取或设置视图状态的加密模式。 |
ViewStateIgnoresCase |
获取一个值,该值指示 StateBag 对象是否不区分大小写。 (继承自 Control) |
ViewStateMode |
获取或设置此控件的视图状态模式。 (继承自 Control) |
ViewStateUserKey |
将一个标识符分配给与当前页关联的视图状态变量中的单个用户。 |
Visible |
获取或设置指示是否呈现 Page 对象的值。 |
方法
事件
AbortTransaction |
当用户结束交易时发生。 (继承自 TemplateControl) |
CommitTransaction |
当事务完成时发生。 (继承自 TemplateControl) |
DataBinding |
当服务器控件绑定到数据源时发生。 (继承自 Control) |
Disposed |
当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。 (继承自 Control) |
Error |
当引发未经处理的异常时发生。 (继承自 TemplateControl) |
Init |
当服务器控件初始化时发生;初始化是控件生存期的第一步。 (继承自 Control) |
InitComplete |
在页初始化完成时发生。 |
Load |
当服务器控件加载到 Page 对象中时发生。 (继承自 Control) |
LoadComplete |
在页生命周期的加载阶段结束时发生。 |
PreInit |
在页初始化之前发生。 |
PreLoad |
在页 Load 事件之前发生。 |
PreRender |
在加载 Control 对象之后、呈现之前发生。 (继承自 Control) |
PreRenderComplete |
在呈现页内容之前发生。 |
SaveStateComplete |
在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生。 |
Unload |
当服务器控件从内存中卸载时发生。 (继承自 Control) |
显式接口实现
扩展方法
FindDataSourceControl(Control) |
返回与指定控件的数据控件关联的数据源。 |
FindFieldTemplate(Control, String) |
返回指定控件的命名容器中指定列的字段模板。 |
FindMetaTable(Control) |
返回包含数据控件的元表对象。 |
GetDefaultValues(INamingContainer) |
为指定数据控件获取默认值的集合。 |
GetMetaTable(INamingContainer) |
为指定数据控件获取表元数据。 |
SetMetaTable(INamingContainer, MetaTable) |
为指定数据控件设置表元数据。 |
SetMetaTable(INamingContainer, MetaTable, IDictionary<String,Object>) |
为指定数据控件设置表元数据和默认值映射。 |
SetMetaTable(INamingContainer, MetaTable, Object) |
为指定数据控件设置表元数据和默认值映射。 |
TryGetMetaTable(INamingContainer, MetaTable) |
确定表元数据是否可用。 |
EnableDynamicData(INamingContainer, Type) |
为指定数据控件启用动态数据行为。 |
EnableDynamicData(INamingContainer, Type, IDictionary<String,Object>) |
为指定数据控件启用动态数据行为。 |
EnableDynamicData(INamingContainer, Type, Object) |
为指定数据控件启用动态数据行为。 |