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
- 继承
- 派生
- 实现
示例
下面的代码示例演示如何 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 |
HttpApplicationState获取当前 Web 请求的对象。 |
| AppRelativeTemplateSourceDirectory |
获取或设置包含此控件的 Page 或 UserControl 对象的应用程序相对虚拟目录。 (继承自 Control) |
| AppRelativeVirtualPath |
获取或设置从中分析和编译控件的文件的应用程序相对虚拟目录路径。 (继承自 TemplateControl) |
| AspCompatMode |
设置一个值,该值指示是否可以在单线程单元 (STA) 线程上执行页面。 |
| AsyncMode |
设置一个值,该值指示页面是同步处理还是异步处理。 |
| AsyncTimeout |
获取或设置一个值,该值指示处理异步任务时使用的超时间隔。 |
| AutoHandlers |
已过时.
ASP.NET AutoHandlers NET 2.0 中已弃用该属性。 它由生成的类使用,不适合在代码中使用。 (继承自 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 |
设置与页面关联的对象的 HTTP MIME 类型 HttpResponse 。 |
| Context |
HttpContext获取与页面关联的对象。 |
| Controls |
获取一个 ControlCollection 对象,该对象代表 UI 层次结构中指定服务器控件的子控件。 (继承自 Control) |
| Culture |
设置与页面关联的对象的区域性 ID Thread 。 |
| 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 时用于分隔控件标识符的字符。 |
| 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 |
获取或设置“description” |
| MetaKeywords |
获取或设置“keywords” |
| ModelBindingExecutionContext |
获取模型绑定执行上下文。 |
| ModelState |
获取包含模型状态和模型绑定验证状态的模型状态字典对象。 |
| NamingContainer |
获取对服务器控件命名容器的引用,该容器创建唯一的命名空间,用于区分具有相同 ID 属性值的服务器控件。 (继承自 Control) |
| Page |
获取对 Page 包含服务器控件的实例的引用。 (继承自 Control) |
| PageAdapter |
获取呈现特定请求浏览器的页面的适配器。 |
| PageStatePersister |
PageStatePersister获取与页面关联的对象。 |
| Parent |
获取对页面控件层次结构中服务器控件的父控件的引用。 (继承自 Control) |
| PreviousPage |
获取将控件传输到当前页的页面。 |
| RenderingCompatibility |
获取一个值,该值指定呈现的 HTML 将与 ASP.NET 版本兼容。 (继承自 Control) |
| Request |
HttpRequest获取所请求页的对象。 |
| Response |
HttpResponse获取与Page对象关联的对象。 此对象允许向客户端发送 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 |
TraceContext获取当前 Web 请求的对象。 |
| TraceEnabled |
设置一个值,该值指示是否为 Page 对象启用跟踪。 |
| TraceModeValue |
设置在页面上显示跟踪语句的模式。 |
| TransactionMode |
设置页面的事务支持级别。 |
| UICulture |
设置与页面关联的对象的用户界面 (UI) ID Thread 。 |
| UniqueFilePathSuffix |
获取要追加到缓存浏览器的文件路径的唯一后缀。 |
| UniqueID |
获取服务器控件的唯一分层限定标识符。 (继承自 Control) |
| UnobtrusiveValidationMode |
获取或设置一个值,该值指示是否使用不显眼的 JavaScript 进行客户端验证。 |
| User |
获取有关发出页面请求的用户的信息。 |
| ValidateRequestMode |
获取或设置一个值,该值指示页面是否检查来自浏览器的客户端输入是否存在潜在危险值。 |
| 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) |
显式接口实现
扩展方法
| 名称 | 说明 |
|---|---|
| EnableDynamicData(INamingContainer, Type, IDictionary<String,Object>) |
为指定的数据控件启用动态数据行为。 |
| EnableDynamicData(INamingContainer, Type, Object) |
为指定的数据控件启用动态数据行为。 |
| EnableDynamicData(INamingContainer, Type) |
为指定的数据控件启用动态数据行为。 |
| FindDataSourceControl(Control) |
返回与指定控件的数据控件关联的数据源。 |
| FindFieldTemplate(Control, String) |
返回指定控件命名容器中指定列的字段模板。 |
| FindMetaTable(Control) |
返回包含数据控件的元表对象。 |
| GetDefaultValues(INamingContainer) |
获取指定数据控件的默认值的集合。 |
| GetMetaTable(INamingContainer) |
获取指定数据控件的表元数据。 |
| SetMetaTable(INamingContainer, MetaTable, IDictionary<String,Object>) |
设置指定数据控件的表元数据和默认值映射。 |
| SetMetaTable(INamingContainer, MetaTable, Object) |
设置指定数据控件的表元数据和默认值映射。 |
| SetMetaTable(INamingContainer, MetaTable) |
设置指定数据控件的表元数据。 |
| TryGetMetaTable(INamingContainer, MetaTable) |
确定表元数据是否可用。 |