Page 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示從裝載 ASP.NET Web 應用程式的伺服器要求的 .aspx 檔案 (也稱為 Web Forms 頁面)。
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 Web 網頁會驗證使用者輸入未包含指令碼或 HTML 項目。 如需詳細資訊,請參閱 Script Exploits Overview (指令碼攻擊概觀)。
<%@ 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 Forms 頁面,請衍生自這個類別。 快速開發應用程式 (RAD) 設計工具,例如 Microsoft Visual Studio,會自動使用此模型來建立 Web Forms 頁面。
對象 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 |
設定數值,指出頁面是否可以在單一執行緒 Apartment (STA) 執行緒上執行。 |
AsyncMode |
設定數值,表示同步或非同步處理頁面。 |
AsyncTimeout |
取得或設定數值,表示處理非同步工作時使用的逾時間隔。 |
AutoHandlers |
已淘汰.
AutoHandlers 屬性在 ASP.NET 2.0 中已被取代。 此屬性由產生的類別使用,並不適用於您的程式碼中。 (繼承來源 TemplateControl) |
AutoPostBackControl |
取得或設定頁面中的控制項,這個控制項是用來執行回傳。 |
BindingContainer |
取得包含了此控制項之資料繫結的控制項。 (繼承來源 Control) |
Buffer |
設定數值,指出是否緩衝頁面輸出。 |
Cache |
取得與網頁所在應用程式相關聯的 Cache 物件。 |
ChildControlsCreated |
取得值,指出是否已經建立伺服器控制項的子控制項。 (繼承來源 Control) |
ClientID |
取得 ASP.NET 所產生之 HTML 標記的控制項識別碼。 (繼承來源 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 |
取得控制項事件處理常式委派 (Delegate) 的清單。 這個屬性是唯讀的。 (繼承來源 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 |
取得或設定 "description" |
MetaKeywords |
取得或設定「關鍵字」 |
ModelBindingExecutionContext |
取得模型繫結執行內容。 |
ModelState |
取得模型狀態字典物件,這個物件包含模型和模型繫結驗證的狀態。 |
NamingContainer |
取得伺服器控制項命名容器的參考,其建立唯一命名空間,在具有相同 ID 屬性值的伺服器控制項之間作區別。 (繼承來源 Control) |
Page |
取得含有伺服器控制項的 Page 執行個體的參考。 (繼承來源 Control) |
PageAdapter |
取得配置器,為特定要求的瀏覽器呈現頁面。 |
PageStatePersister |
取得與網頁關聯的 PageStatePersister 物件。 |
Parent |
在網頁控制階層架構中取得伺服器控制項之父控制項的參考。 (繼承來源 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 |
取得或設定值,指出是否針對用戶端驗證使用 Unobtrusive 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) |
針對指定的資料控制項啟用動態資料行為。 |