@ Page

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

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

屬性

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

    預設值為 false

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

    值必須是整數。

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

    Note注意事項

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

  • AutoEventWireup
    表示網頁的事件是否已自動連接。如果已啟用事件自動連接,則為 true,否則為 false。預設為 true。如需詳細資訊,請參閱 ASP.NET Web 伺服器控制項事件模型
  • Buffer
    判斷是否已啟用 HTTP 回應緩衝處理。如果網頁緩衝處理已啟用,則為 true,否則為 false

    預設為 true

  • ClassName
    字串,指定在要求網頁時會自動動態編譯的網頁類別名稱。這個值可以是任何有效的類別名稱,並可包含類別的完整命名空間,也就是完整類別名稱 (Fully Qualified Class Name)。如果未指定這個屬性的值,則已編譯之網頁的類別名稱會根據網頁的檔案名稱而來。

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

  • ClientTarget
    表示目標使用者代理程式 (通常是 Web 瀏覽器,例如 Microsoft Internet Explorer),ASP.NET 伺服器控制項會在此呈現內容。這個值可以是應用程式組態檔中 <clientTarget> 區段所定義之任何有效的別名。
  • CodeBehind
    指定編譯檔的名稱,這個檔案包含與網頁相關的類別。在執行階段時不會使用這個屬性。

    Note注意事項

    這個屬性是為了前版 ASP.NET 的回溯相容性而加入,以便實作程式碼後置功能。在 ASP.NET 2.0 版中,您應該改用 CodeFile 屬性指定原始程式檔名稱,並使用 Inherits 屬性指定完整類別名稱。

  • CodeFile
    指定網頁所參考之程式碼後置檔的路徑。這個屬性與 Inherits 屬性一起使用,將程式碼後置的原始程式檔與 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
    指示網頁的文化特性設定。這個屬性的值必須是有效的文化特性 (Culture) ID。請注意,LCIDCulture 屬性是互斥 (Mutually Exclusive) 的;如果您使用其中一個屬性,在同一個網頁上就不能使用另一個。如需可能之文化特性值的詳細資訊,請參閱 CultureInfo 類別。
  • Debug
    指示網頁是否應該使用偵錯符號編譯。如果網頁應使用偵錯符號編譯,則為 true,否則為 false。因為這個設定會影響效能,所以您應該只在開發階段將這個屬性設定為 true
  • Description
    提供網頁的文字描述。ASP.NET 剖析器會忽略這個值。
  • EnableEventValidation
    啟用回傳和回呼案例中的事件驗證。如果會驗證事件,則為 true,否則為 false。預設為 true
  • EnableSessionState
    定義網頁的工作階段狀態需求。如果已啟用工作階段狀態,則為 true;如果工作階段狀態可讀取但不可變更,則為 ReadOnly,否則為 false。預設值為 true。這些值不區分大小寫。如需詳細資訊,請參閱 ASP.NET 工作階段狀態
  • EnableTheming
    表示網頁上是否使用主題。如果使用主題則為 true,否則為 false。預設為 true
  • EnableViewState
    表示檢視狀態是否要在所有網頁要求之間都要維持。如果檢視狀態要維持,則為 true,否則為 false。預設為 true
  • EnableViewStateMac
    表示 ASP.NET 在網頁從用戶端回傳時,是否應該對網頁的檢視狀態執行電腦驗證檢查 (Machine Authentication Check,MAC)。如果檢視狀態應該進行 MAC 檢查,則為 true,否則為 false。預設值為 false

    Note注意事項

    檢視狀態 MAC 是隱藏之變數的加密版本,會在傳送到瀏覽器時,由頁面的檢視狀態加以保存。當您將這個屬性設定為 true 時,就會對加密的檢視狀態進行檢查,以驗證它在用戶端時是否遭到竄改。請注意將這個屬性設定為 true 會影響效能,因為變數值必須要在每次網頁來回之間解密和加密。

  • ErrorPage
    定義在發生未處理的例外狀況 (Exception) 時,重新導向的目標 URL。
  • Explicit
    決定網頁是否使用 Visual Basic Option Explicit 模式編譯。true 表示啟用 Visual Basic 的 Explicit 編譯選項,而且所有的變數必須使用 DimPrivatePublicReDim 陳述式來宣告,否則為 false。預設為 false

    Note注意事項

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

  • Inherits
    定義網頁要繼承的程式碼後置 (Code-Behind) 類別。這可以是從 Page 類別衍生的任何類別。與 CodeFile 屬性一起使用,這個屬性包含程式碼後置檔案之原始程式檔的路徑。如需程式碼後置類別的詳細資訊,請參閱 ASP.NET Web 網頁程式碼模型
  • Language
    指定在編譯所有內嵌轉譯 (<% %> 和 <%= %>) 與網頁內的程式碼宣告區塊時所使用的語言。值可以表示任何 .NET Framework 支援的語言,包括 Visual Basic、C# 或 JScript。每個網頁只能使用和指定一種語言。
  • LCID
    定義 Web Form 網頁的地區設定識別項 (Locale Identifier)。

    Note注意事項

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

  • LinePragmas
    決定執行階段是否應該在原始程式碼中產生程式碼行 Pragma。這些編譯器選項通常由偵錯工具使用,在原始程式檔中標記特定的位置。如果應該要產生程式碼行 Pragma 則為 true,否則為 false
  • MaintainScrollPositionOnPostback
    表示在回傳後是否將使用者帶回至用戶端瀏覽器中相同的位置。如果使用者應回到相同的位置,則為 true,否則為 false。預設值為 false

    Note注意事項

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

  • MasterPageFile
    設定內容頁面或巢狀主版頁面 (Master Page) 之主版頁面的路徑。支援相對和絕對路徑。
  • ResponseEncoding
    表示編碼方式配置的名稱,用於含有頁面內容的 HTTP 回應。指派給這個屬性的值是有效的編碼方式名稱。如需可能之編碼名稱的清單,請參閱 Encoding 類別。您也可以呼叫 GetEncodings 方法取得可能之編碼名稱和 ID 的清單。
  • SmartNavigation
    表示網頁是否支援 Internet Explorer 5.5 (含) 以後版本中的智慧型巡覽功能。如果智慧型巡覽已啟用則為 true,否則為 false。預設值為 false

    您也可以在程式碼中設定網頁的 SmartNavigation 屬性,但是通常應該使用此屬性搭配 @ Page 指示詞來設定它。如需這項功能如何改進使用者之 Web 網頁巡覽經驗的詳細資訊,請參閱 SmartNavigation 屬性。

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

    您可以使用 Src 屬性,將建置提供者連結至網頁。如需詳細資訊,請參閱 BuildProvider 類別。此外,在 ASP.NET 2.0 之前的版本中,Src 屬性是做為將程式碼後置檔連結至網頁的替代方式。在 ASP.NET 2.0 中,將程式碼後置原始程式檔連結至網頁的較佳作法是使用 Inherits 屬性指定類別,並使用 CodeFile 屬性指定此類別之原始程式檔的路徑。

  • Strict
    表示網頁應該使用 Visual Basic Option Strict 模式編譯。如果 Option Strict 已啟用則為 true,否則為 false。預設為 false

    Note注意事項

    除了 Visual Basic 以外的語言都會忽略這個屬性。

  • StyleSheetTheme
    指定要用於網頁之有效的主題識別項。當 StyleSheetTheme 屬性已設定時,個別的控制項可以覆寫主題中包含的樣式設定。因此主題可以提供網站整體的外觀,而 StyleSheetTheme 屬性中包含的設定則可讓您自訂網頁上特定的設定以及其個別的控制項。
  • TargetSchema
    指定會驗證網頁內容的結構描述名稱。這只做為說明用途;不會執行真正的驗證,而且剖析器會忽略此屬性。
  • Theme
    指定要用於網頁之有效的主題識別項。當 Theme 屬性已設定而未使用 StyleSheetTheme 屬性時,它會覆寫控制項上個別的樣式設定,讓您在網頁上建立統一且一致的外觀。
  • Title
    指定網頁的標題,標題會在回應的 HTML <title> 標記中呈現。標題也可以用程式設計方式存取,就如同網頁上的屬性一般。如需詳細資訊,請參閱 Title 屬性。
  • Trace
    表示是否已啟用追蹤。如果已啟用追蹤,則為 true,否則為 false。預設為 false。如需詳細資訊,請參閱 ASP.NET 追蹤
  • TraceMode
    表示啟用追蹤時,要如何對網頁顯示追蹤訊息。可能的值為 SortByTimeSortByCategory。當追蹤啟用時,預設值為 SortByTime。如需追蹤的詳細資訊,請參閱 ASP.NET 追蹤
  • Transaction
    指示網頁是否支援交易。可能的值為 DisabledNotSupportedSupportedRequiredRequiresNew。預設值為 Disabled
  • UICulture
    指定用於網頁的使用者介面 (UI) 文化特性設定。可支援任何有效的 UI 文化特性值。
  • ValidateRequest
    指示是否應該執行要求驗證。如果是 true,則要求驗證會根據潛在危險值的硬式編碼清單,檢查所有的輸入資料。如果找到符合的資料,便會擲回 HttpRequestValidationException 例外狀況。預設值為 true

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

    Note注意事項

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

  • ViewStateEncryptionMode
    決定如何使用三個可能的列舉值加密檢視狀態:AutoAlwaysNever。預設值為 Auto,表示如果個別的控制項提出要求,則會加密檢視狀態。如需詳細資訊,請參閱 ViewStateEncryptionMode 列舉型別。
  • WarningLevel
    表示要編譯器將警告視為錯誤的編譯器警告層級,使得網頁編譯中止。可能的警告層級為 0 到 4。如需詳細資訊,請參閱 WarningLevel 屬性。

備註

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

Note注意事項

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

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

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

當網頁的 AspCompat 屬性設定為 true 時,如果您在要求排定前,使用建構函式 (Constructor) 建立 COM 元件,則它會以多執行緒 Apartment (MTA) 執行緒執行。這麼做會造成 Web 伺服器效能明顯下降。若要避免這個問題,請只從其中一個 Page 事件 (例如 Page_LoadPage_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>
Note注意事項

@ Master 指示詞加入至主版頁面,並不會讓您可以在相依於主版頁面的網頁中使用相同的指示詞宣告。相反的,請使用 <pages> 項目,以全域方式定義網頁指示詞。

範例

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

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

請參閱

參考

指示詞語法
@ Control
@ Master

其他資源

ASP.NET Web 網頁語法