@ Page

定義 ASP.NET 網頁剖析器和編譯器使用的網頁專用 (.aspx 檔案) 屬性。

<%@ Page attribute="value" [attribute="value"...] %>

屬性

  • Async
    讓網頁成為非同步的處理常式 (也就是說讓網頁使用 IHttpAsyncHandler 的實作來處理要求)。

    預設值為 false。

  • AsyncTimeOut
    定義在處理非同步工作時使用的逾時間隔 (以秒為單位)。 預設為 45 秒。

    值必須是整數。

    如需詳細資訊,請參閱 AsyncTimeout 屬性 (Property)。

  • AspCompat
    設定為 true 時,可以讓網頁在單一執行緒 Apartment (STA) 的執行緒上執行。 這樣可以讓網頁呼叫 STA 元件,例如以 Microsoft Visual Basic 6.0 開發的元件。 將這個屬性設定為 true 也可以讓網頁呼叫需要存取 Unmanaged Active Server Pages (ASP) 內建物件的 COM+ 1.0 版元件。 這些都是可以透過 ObjectContext 物件或 OnStartPage 方法存取的。 預設值為 false。

    注意

    將這個屬性設為 true 可能會導致網頁的效能降低。如需詳細資訊,請參閱<備註>一節。

  • AutoEventWireup
    表示網頁的事件是否會自動連接。 如果有啟用事件自動連接則為 true,否則為 false。 預設值為 true。 如需詳細資訊,請參閱 ASP.NET Web Server Control Event Model

  • Buffer
    判斷是否已啟用 HTTP 回應緩衝。 如果有啟用頁面緩衝則為 true,否則為 false。

    預設值為 true。

  • ClassName
    字串,指定在要求網頁時會動態編譯的網頁類別名稱。 這個值可以是任何有效的類別名稱,且可包含完整類別名稱 (Fully Qualified Class Name)。 如果未指定這個屬性的值,則已編譯之網頁的類別名稱會根據網頁的檔案名稱而來,並使用預設的命名空間 ASP。 如果指定了 ClassName 屬性值,其中未包含完整的命名空間,則會使用命名空間 ASP 結合指定的類別名稱以建立完整類別名稱。

    另一個網頁可以使用 @ Reference 指示詞,參考指派給第一個網頁的類別名稱。

    注意

    在程式碼後置類別內可參考相關聯之.aspx 網頁類別的成員 (使用 .aspx 網頁的完整類別名稱)。不過,如果您先行編譯啟用原始碼保護的網站,則程式碼後置網頁類別不會與 .aspx 網頁類別位於相同的組件中。因此程式碼後置檔案內的類別參考將無法運作。如需先行編譯的詳細資訊,請參閱ASP.NET Web Site Precompilation Overview

  • ClientIDMode
    指定要用來產生控制項之 ClientID 值的演算法。 預設值是 Predictable。 控制項的預設值為 Inherit。 因此,頁面中控制項的預設演算法是由頁面的 ClientID 設定所決定。 不同的預設值,可以在 Web.config 檔的 pages 項目中設定。 如需演算法的詳細資訊,請參閱 ClientIDMode 類別。

  • ClientTarget
    表示目標使用者代理程式 (通常是 Web 瀏覽器,例如 Microsoft Internet Explorer),ASP.NET 伺服器控制項會在此呈現內容。 這個值可以是應用程式組態檔中 <clientTarget> 區段所定義之任何有效的別名。 如需詳細資訊,請參閱 ClientTarget 屬性 (Property)。

  • CodeBehind
    指定編譯檔的名稱,這個檔案包含與網頁相關的類別。 在執行階段時不會使用這個屬性。

    這個屬性是在 Web 應用程式專案使用。 CodeFile 屬性是在網站專案使用。 如需 Visual Studio 中 Web 專案類型的詳細資訊,請參閱 與在 Visual Studio 中的網站專案的 web 應用程式專案

  • CodeFile
    指定網頁所參考之程式碼後置檔的路徑。 這個屬性與 Inherits 屬性一起使用,將程式碼後置的原始程式檔與 Web 網頁關聯。 該屬性只對已編譯的網頁有效。

    這個屬性是在網站專案使用。 CodeBehind 屬性是在 Web 應用程式專案使用。 如需 Visual Studio 中 Web 專案類型的詳細資訊,請參閱 與在 Visual Studio 中的網站專案的 web 應用程式專案

  • CodeFileBaseClass
    指定網頁以及其關聯的程式碼後置類別之基底類別的型別名稱。 這個屬性是選擇性的,但是使用此屬性時 CodeFile 屬性也必須存在。 當您想要實作共用的案例時請使用這個屬性,在這類案例中您會在基底類別中定義共通的欄位 (以及選擇地定義關聯事件),以參考 Web 網頁中宣告的控制項。 因為 ASP.NET 程式碼產生模型的關係,如果在基底類別中定義欄位而未使用這個屬性,則在編譯階段會為 Web 網頁中宣告 (在個別的部分類別 Stub 中宣告) 的控制項產生新的成員定義,而您所想要的案例就無法發生作用。 但是如果使用 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 屬性是互斥的;如果您使用其中一種屬性,在同一個網頁上就不能使用另一個。 如需詳細資訊,請參閱 Culture 屬性和 CultureInfo 類別。

  • Debug
    表示頁面是否應該使用偵錯符號進行編譯。 如果頁面應以偵錯符號編譯,則為 true,否則為 false。 因為這個設定會影響效能,所以您應該只在開發階段將這個屬性設定為 true。

  • Description
    提供網頁的文字描述。 ASP.NET 剖析器會忽略這個值。

  • EnableEventValidation
    啟用回傳和回呼案例中的事件驗證。 如果已驗證事件則為 true,否則為 false。 預設值為 true。

    網頁事件驗證可降低未經授權回傳要求和回呼的風險。 當 enableEventValidation 屬性設定為 true 時,ASP.NET 只允許在回傳要求或回呼期間,於控制項上引發事件。 使用此模型時,控制項會在轉譯期間註冊其事件,然後在處理回傳或回呼期間驗證事件。 根據預設,ASP.NET 內所有以事件驅動的控制項皆儲使用這個功能。

    強烈建議您不要停用事件告知。 在停用事件告知以前,您應該確定無法建構任何會對應用程式造成非預期影響的回傳。

  • EnableSessionState
    定義頁面的工作階段狀態需求。 如果工作階段狀態已啟用,則為 true,如果工作階段狀態可讀取但無法變更,則為 ReadOnly,否則為 false。 預設值為 true。 這些值不區分大小寫。 如需詳細資訊,請參閱 ASP.NET Session State Overview

  • EnableTheming
    表示是否在頁面上使用佈景主題。 如果使用主題,則為 true,否則為 false。 預設值為 true。

  • EnableViewState
    指定是否要跨越多個網頁要求維護檢視狀態。 如果維護檢視狀態,這個值會是 true,如果不維護檢視狀態,則這個值會是 false。 預設值為 true。

    即使此屬性設定為 true,如果任何下列條件適用,檢視狀態將不會維護控制項:

    如需檢視狀態和控制項狀態的詳細資訊,請參閱 Control.EnableViewState 屬性。

  • EnableViewStateMac
    表示當頁面從用戶端回傳時,ASP.NET 應該確認網頁之檢視狀態中的訊息驗證碼 (MAC)。 如果檢視狀態應接受 MAC 檢查,則為 true,否則為 false。 預設值為 true。

    檢視狀態 MAC 是隱藏之變數的加密版本,會在傳送到瀏覽器時,由頁面的檢視狀態加以保存。 MAC 用來確認檢視狀態未在用戶端上遭到修改。

    安全性注意事項安全性提示

    絕對不要在實際執行的網站中將這個屬性設定為 false。

  • ErrorPage
    定義在發生未處理的例外狀況 (Exception) 時,重新導向的目標 URL。 如需詳細資訊,請參閱 ErrorPage 屬性 (Property)。

  • Explicit
    決定網頁是否使用 Visual Basic Option Explicit 模式編譯。 true 表示啟用 Visual Basic 的明確編譯選項,而且所有的變數必須使用 Dim、Private、Public 或 ReDim 陳述式來宣告,否則為 false。 預設值為 false。

    注意

    除了 Visual Basic 以外的語言都會忽略這個屬性。此外,這個選項在 Machine.config 組態檔中是設定為 true。如需詳細資訊,請參閱 ASP.NET Configuration Files

  • Inherits
    定義網頁要繼承的程式碼後置 (Code-Behind) 類別。 這可以是從 Page 類別衍生的任何類別。 這個屬性與 CodeFile 屬性一起使用,這個屬性包含程式碼後置檔案之原始程式檔的路徑。 在使用 C# 為網頁語言時,Inherits 屬性是區分大小寫的,而在使用 Visual Basic 為網頁語言時,這個屬性則是不區分大小寫的。

    如果 Inherits 屬性未包含命名空間,ASP.NET 會檢查 ClassName 屬性是否包含命名空間。 如果其中包含命名空間,則 ASP.NET 會嘗試使用 ClassName 屬性的命名空間載入 Inherits 屬性內參考的類別 (假設 Inherits 屬性和 ClassName 屬性使用相同的命名空間)。

    如需程式碼後置類別的詳細資訊,請參閱 ASP.NET Web Page Code Model

  • Language
    指定在編譯所有內嵌轉譯 (<% %> 和 <%= %>) 與網頁內的程式碼宣告區塊時所使用的語言。 值可以表示任何 .NET Framework 支援的語言,包括 Visual Basic、C# 或 JScript。 每個網頁只能使用和指定一種語言。

  • LCID
    定義 Web Form 網頁的地區設定識別項 (Locale Identifier)。

    注意

    地區設定識別項是可以唯一定義地區設定的 32 位元值。除非您使用這個屬性對 Web Form 網頁指定不同的地區設定,否則 ASP.NET 會使用 Web 伺服器預設的地區設定。請注意,LCID 和 Culture 屬性是互斥的;如果您使用其中一種屬性,在同一個網頁上就不能使用另一個。如需地區設定 (Locale) 的詳細資訊,請搜尋 MSDN Library

  • LinePragmas
    決定執行階段是否應該在原始程式碼中產生程式碼行 Pragma。 這些是偵錯工具經常用來在原始程式檔中標示特定位置的編譯器選項。 如果應該產生列 Pragma,則為 true ,否則為 false。

  • MaintainScrollPositionOnPostback
    表示是否要在回傳後將使用者傳回到用戶端瀏覽器中的相同位置。 如果使用者應該返回相同的位置,則為 true,否則為 false。 預設值為 false。

    注意

    程式開發人員可以在 Web.config 檔的 <pages> 項目上設定 maintainScrollPostitionOnPostback 屬性 (請注意在組態檔中這是區分大小寫的),為所有的網頁定義這個屬性。

  • MasterPageFile
    設定內容頁面或巢狀主版頁面 (Master Page) 之主版頁面的路徑。 支援相對和絕對路徑。 如需詳細資訊,請參閱 MasterPageFile 屬性 (Property)。

  • MetaDescription
    設定 MetaDescription 屬性。 如果網頁標記也包括 "description" meta 項目, @ Page 指示詞中的值便會覆寫標記中的值。

  • MetaKeywords
    設定 MetaKeywords 屬性。 如果網頁標記也包含 "keywords"meta 項目, @ Page 指示詞中的值便會覆寫標記中的值。

  • ResponseEncoding
    表示編碼方式配置的名稱,用於含有頁面內容的 HTTP 回應。 指派給這個屬性的值是有效的編碼名稱。 如需可能編碼方式名稱的清單,請參閱 Encoding 類別。 您也可以呼叫 GetEncodings 方法取得可能之編碼名稱和 ID 的清單。

  • SmartNavigation
    表示頁面是否支援 Internet Explorer 5.5 或更新版本的智慧型巡覽功能。 如果啟用智慧型巡覽,則為 true,否則為 false。 預設值為 false。

    在 ASP.NET 2.0 (含) 以後版本中,SmartNavigation 屬性都已過時。 請改用 SetFocus 方法和 MaintainScrollPositionOnPostback() 屬性。

  • Src
    指定原始程式檔的路徑,檔案包含連結至網頁的程式碼。 在連結的原始程式檔中,可以選擇要在類別或程式碼宣告區塊中包含網頁的程式設計邏輯。

    您可以使用 Src 屬性,將建置提供者連結至網頁。 如需詳細資訊,請參閱 BuildProvider 類別。 此外,在 ASP.NET 2.0 之前的版本中,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 屬性時,它會覆寫控制項上個別的樣式設定,讓您在網頁上建立統一且一致的外觀。 如需詳細資訊,請參閱 Theme 屬性 (Property)。

  • Title
    指定網頁的標題,標題會在回應的 HTML <title> 標記中呈現。 標題也可以用程式設計方式存取,就如同網頁上的屬性一般。 如需詳細資訊,請參閱 Title 屬性。

  • Trace
    表示是否已啟用追蹤。 如果已啟用追蹤,則為 true,否則為 false。 預設值為 false。 如需詳細資訊,請參閱ASP.NET Tracing OverviewTrace 屬性。

  • TraceMode
    表示啟用追蹤時,要如何對網頁顯示追蹤訊息。 可能的值為 SortByTime 和 SortByCategory。 當追蹤啟用時,預設值為 SortByTime。 如需追蹤的詳細資訊,請參閱 ASP.NET Tracing Overview

  • Transaction
    指示是否在網頁上支援 COM+ 交易。 可能的值為 Disabled、NotSupported、Supported、Required 和 RequiresNew。 預設值為 Disabled。

  • UICulture
    指定用於網頁的使用者介面 (UI) 文化特性設定。 可支援任何有效的 UI 文化特性值。 如需詳細資訊,請參閱 UICulture 屬性 (Property)。

  • ValidateRequest
    指示是否應該執行要求驗證。 如果是 true,則要求驗證會根據潛在危險值的硬式編碼清單,檢查所有的輸入資料。 如果找到符合的資料,便會擲回 HttpRequestValidationException 例外狀況。 預設值為 true。

    電腦組態檔 (Machine.config) 中會啟用這項功能。 您可以在應用程式組態檔 (Web.config) 中或頁面上將這項屬性設定為 false,停用這項功能。

    注意

    這項功能可減少在直接使用網頁或 ASP.NET 應用程式時,受到跨網站指令碼攻擊的風險。沒有適當驗證使用者輸入的應用程式可能會遭受許多種錯誤輸入的攻擊,包括跨網站的指令碼和 Microsoft SQL Server 插入式攻擊 (Injection Attack) 等。最好的防範方式,還是謹慎評估應用程式中所有形式的輸入,並確定這些輸入都經過適當的驗證或編碼,或是確定應用程式會在操作資料或將資訊傳回至用戶端前就先行逸出。

  • ViewStateEncryptionMode
    決定如何使用三個可能的列舉值加密檢視狀態:Auto、Always 或 Never。 預設值為 Auto,表示如果個別的控制項提出要求,則會加密檢視狀態。 如需詳細資訊,請參閱 ViewStateEncryptionMode 列舉。

  • ViewStateMode
    指定當控制項的 ViewStateMode 屬性為 Inherit 時,將會對控制項產生效果的 ViewStateMode 屬性。 頁面的預設 ViewStateMode 值為 Enabled

    ViewStateModeEnableViewState 屬性會決定是否在網頁上維護控制項的檢視狀態。 如需詳細資訊,請參閱 EnableViewState 屬性和 ViewStateMode 屬性。

  • WarningLevel
    表示要編譯器將警告視為錯誤的編譯器警告層級,使得網頁編譯中止。 可能的警告層級為 0 到 4。 如需詳細資訊,請參閱 WarningLevel 屬性 (Property)。

備註

這個指示詞只能使用於 Web Form 網頁中。 在每一個 .aspx 檔案中只能包含一個 @ Page 指示詞。 此外,每個 @ Page 指示詞只能定義一個 Language 屬性,因為每個網頁只能使用一種語言。 因為對於絕大多數的屬性會提供最常用的預設值 (在原始程式碼或組態檔中),所以通常不需要將大量的屬性加入至指示詞。 一般而言,您應該只加入最小的必要屬性集,指定網頁要使用的功能。 如果有想要套用至所有網頁的共通屬性,例如想要在所有網頁上啟用追蹤,請考慮在 Web.config 檔中啟用此功能,而不是將 Trace 屬性加入至每個個別網頁中。

注意

@ Page 指示詞與其他套用至整個原始程式檔的指示詞有一些共通的屬性,例如 @ Control 指示詞 (在 .ascx 檔案中使用,用於 Web 使用者控制項),以及 @ Master 指示詞 (在 .master 檔案中使用,用於主版頁面)。

若要為 @ Page 指示詞定義多個屬性,請以單一空格分隔每個屬性/值組。 對於特定的屬性,請不要在連接屬性與其值的等號 (=) 兩端包含空白。 如需範例,請參閱本主題的<範例>章節。

智慧型巡覽是 ASP.NET 中的一項功能,Internet Explorer 5.5 (含) 以後版本的瀏覽器都支援這項功能。 它讓網頁在不同巡覽之間進行重新整理時,仍能維持捲動位置和項目焦點 (Focus),只將單一網頁儲存在瀏覽器的記錄中,而且沒有一般重新整理 Web 網頁時所出現的閃動現象。 智慧型巡覽最適合與需要時常回傳、但傳回的視覺內容並無劇烈變更的 ASP.NET 網頁搭配使用。 決定是否將這個屬性設定為 true 時,請仔細考慮這一點。

當網頁的 AspCompat 屬性設定為 true 時,如果您在要求排定前,使用建構函式 (Constructor) 建立 COM 元件,則它會以多執行緒 Apartment (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 項目,以全域方式定義網頁指示詞。

範例

下列程式碼範例將指示 ASP.NET 網頁編譯器使用 Visual Basic 做為網頁的伺服器端程式碼語言,並且將傳輸到用戶端的預設 HTTP MIME ContentType 屬性設為 "text/xml"。

<%@ Page Language="VB" ContentType="text/xml" %>

請參閱

參考

文字範本指示詞語法

@ Control

@ Master

其他資源

ASP.NET 網頁語法