天天看點

Asp.net page指令屬性

以前隻知道會用就行,今天boss讓我去了解一下<%@ Page%>裡面的各個屬性的用法,于是就有了這篇東湊西湊的文章!

<%@ Page%>是頁面指令,作用于目前頁面,指定使用語言、代碼頁等等。

eg:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Welcomewold.aspx.cs" Inherits="Welcomewold" %>

頁面指令:

ASP.NET 頁面中的前幾行,一般是%@...%這樣的代碼,這叫做頁面指令。用來定義ASP.NET頁分析器和編譯器使用的特定于該頁得一些定義。在.aspx檔案中使用的頁面指令一般有以下幾種:

(1)Language: 指定頁中的所有内聯呈現(<%%>和<%=%>)和代碼聲名塊進行編譯時使用的語言。可以是任何.NET Framework支援的語言。請切記:每頁隻能使用和指定一種語言,但一個工程可以使用多種語言。

(2)AutoEventWireup : 設定頁面的事件是否自動綁定。ASP.NET 2.0預設值為true,ASP.NET 1.0和ASP.NET 1.1預設為false。ASP.NET頁觸發的事件,如Init, Load,PreRender等,在預設情況下,可以使用“Page_事件名稱”的命名約定将頁事件綁定到相應的方法,頁面編譯時,ASP.NET将查找基礎此命名約定的方法,并自動執行該方法的代碼。例如,頁的Load事件預設建立名為Page_Load的方法處理程式。

(3)CodeFile:指定指向頁引用的代碼隐藏檔案的路徑。此屬性與Inherits屬性一起使用可以将代碼隐藏源檔案與網頁相關聯。此屬性僅對編譯的頁有效。

(4)Inherits:與CodeFile屬性(包含指向代碼隐藏類的源檔案的路徑)一起使用來定義供頁繼承的任何從Page類派生的代碼隐藏類。

(5)session:session="false",頁面不儲存session。

(6)contentType:contentType="text/html; charset=UTF-8" :指定編碼方式。

(7)StyleSheetTheme:此屬性在.NET Framework 2.0 版中是新增的。 擷取或設定應用于此頁的樣式表的名稱;

(8)EnableTheming:擷取或設定一個值,該值訓示是否對此控件應用主題。EnableTheming屬性訓示是否為指定的控件啟用主題。當 EnableTheming 屬性為 true 時,将在應用程式的主題目錄中搜尋要應用的控件外觀。如果主題目錄中不存在用于特定控件的外觀,則不應用外觀。當 EnableTheming 屬性為 false 時,将不會搜尋主題目錄,并且不會使用 SkinID 屬性的内容。控件可以重寫由其父控件或包含頁設定的 EnableTheming 值。例如,如果父控件的 EnableTheming 屬性設定為 false,您可以選擇性地通過在各個子控件的基礎上将 EnableTheming 屬性設定為 true,将主題應用于包含在父級中的子控件。可在頁、容器或控件級别啟用主題。當在頁級别或容器級别禁用主題時,會對頁或容器包含的所有控件禁用主題。

(9)ValidateRequest:要阻止依賴于惡意輸入字元串的黑客攻擊,限制和驗證使用者輸入是必不可少的。跨站點腳本攻擊就是此類攻擊的一個示例。其他類型的惡意資料或不需要的資料可以通過各種形式的輸入在請求中傳入。通過在應用程式中的較低級别限制允許通過的資料類型,就可以阻止不希望的事件,即使當使用代碼的程式員沒有恰當地使用合适的驗證技術時也是如此。當請求驗證檢測到潛在的惡意用戶端輸入時,會引發此異常來中止請求處理。請求中止能夠訓示危害您的應用程式安全的企圖,例如跨站點腳本攻擊。強烈建議讓您的應用程式顯式地檢查與請求中止有關的所有輸入。不過,您也可以通過将 @ Page 指令中的 validateRequest 屬性設定為 false 來禁用請求驗證。

(10)其它總結

@Page指令位于每個ASP.NET頁面的頂部,告訴ASP.NET這個具體頁面使用什麼屬性,以及該頁面繼承的使用者控件。ASP.NET頁面@Page指令屬性有:AspCompat、Async、AsyncTimeout、AutoEventWireup、Buffer、ClassName、ClientIDMode、CodeBehind、 CodeFile、CodeFileBaseClass、CodePage、CompilationMode 、ContentType、 CompilerOptions、Culture 、Debug、 EnableEventValidation、EnableSessionState、EnableTheming 、EnableViewState、 EnableViewStateMac 、ErrorPage 、Explicit、 Inherits、 Language、 LCID 、LinePragmas、MaintainScrollPositionOnPostback、 MasterPageFile、 MetaDescription 、MetaKeywords 、ResponseEncoding、Src、Strict、StylesheetTheme、Theme、Title、Trace 、TraceMode 、Transaction 、UICulture、 ValidateRequest、ViewStateEncryptionMode、ViewStateMode、WarningLevel。

      AspCompat通過設定頁面在單線程單元中運作,使得ASP.NET頁面能夠通路傳統的COM對象。ASP.NET頁面預設是在多線程單元(MTA)中運作。當啟用AspCompant模式時,設定ASP.NET在單線程單元(STA)中運作頁面,以便它能夠安全地與COM對象互動。AspCompat設定為true會影響性能。預設為false。

      Async使頁面成為異步處理程式,即導緻頁使用IHttpAsyncHandler的實作來處理請求,預設為false。

      AsyncTimeout定義在處理異步任務時使用的逾時的時間間隔(以秒為機關)。預設為45秒。

      AutoEventWireup訓示頁面的事件是否自動綁定。如果啟用了事件的自動綁定,則為true;否則為false。預設值為true。

      Buffer确定是否啟用HTTP響應緩沖。如果啟用頁面緩沖為true;否則為false。預設為true。

      ClassName指定在請求該頁面時将自動進行動态編譯的頁的類名。此值可以是任何有效的類名,并且可以包括類的完整命名空間。如果未指定該屬性的值,則已編譯的類名将基于頁的檔案名。其他頁可以通過使用 @ Reference 指令來引用配置設定給第一頁的類名。

      ClientTarget訓示 ASP.NET 伺服器控件應該為其呈現内容的目标使用者代理(通常是 Web 浏覽器,例如 Microsoft Internet Explorer)。該值可以是應用程式配置檔案的 <clientTarget> 節中定義的任何有效别名。

      CodeBehind指定包含與頁關聯的類的已編譯檔案的名稱。該屬性不能在運作時使用。提供此屬性是為了與以前版本的 ASP.NET 的相容,以實作代碼隐藏功能。在 ASP.NET 2.0 版中,應改用 CodeFile 屬性指定該源檔案的名稱,同時使用 Inherits 屬性指定該類的完全限定名稱。

      CodeFile指定指向頁引用的代碼隐藏檔案的路徑。此屬性與 Inherits 屬性一起使用可以将代碼隐藏源檔案與網頁相關聯。此屬性僅對編譯的頁有效。

      CodeFileBaseClass指定頁的基類及其關聯的代碼隐藏類的路徑。此屬性是可選的,但如果使用此屬性,則必須同時使用 CodeFile 屬性。如果希望實作以下共享方案,可使用該屬性:在該共享方案中,您在基類中定義通用字段(可以選擇性地定義關聯事件)以引用在網頁中聲明的控件。出于 ASP.NET 代碼生成模型的緣故,如果您在基類中定義字段時沒有使用該屬性,則編譯時将為在網頁中(在單獨的分部類存根中)聲明的控件生成新的成員定義,而您希望的方案将無法生效。但是,如果您使用 CodeFileBaseClass 屬性将基類與頁相關聯,并且您的分部類(其名稱配置設定給 Inherits 屬性,并且其源檔案由 CodeFile 屬性引用)是從該基類繼承的,則該基類中的字段在代碼生成之後将能夠引用頁上的控件。

      CodePage訓示用于響應的編碼方案的值。該值是一個用作編碼方案 ID 的整數。有關可能的 CodePage ID 的清單,請參見 Encoding 類。

     CompilationMode設定是否應使用指定多個枚舉選項之一的字元串來編譯頁。預設值為 Always,是以,預設情況下編譯 .aspx 頁。包含用于編譯頁的編譯器選項的字元串。在 C# 和 Visual Basic 中,這是編譯器指令行開關的序列。有關編譯器選項的更多資訊,請參見 C# 編譯器選項或 Visual Basic 編譯器。

     ContentType将響應的 HTTP 内容類型定義為标準的 MIME 類型。

     CompilerOptions支援任何有效的 HTTP 内容類型字元串。有關可能值的清單,請在 MSDN Library 中搜尋 MIME。Culture訓示頁的區域性設定。該屬性的值必須是有效的區域性 ID。注意,LCID 和 Culture 屬性是互相排斥的;如果使用了其中一個屬性,就不能在同一頁中使用另一個屬性。

      Culture動态生成的類将設定此屬性的值。此外,還可以通過程式設計方式或在 Web.config 檔案的 globalization 元素(ASP.NET 設定架構) 中顯式設定 Culture 屬性的值。Culture 屬性用于幫助本地化頁内容。可以将其設定為任何有效的區域性 ID。例如,en-us 區域性 ID 将頁設定為美國英語,而 fr 區域性 ID 将頁設定為法語。還可以将該值設定為 auto,進而自動檢測浏覽器的首選語言并設定該語言。可以用預設值(如 auto:en-us)限定自動語言檢測。

      Debug訓示是否應使用調試符号編譯該頁。如果應使用調試符号編譯該頁,則為 true;否則為 false。由于此設定影響性能,是以隻應在開發期間将此屬性設定為 true。

      EnableEventValidation在回發方案中啟用事件驗證。如果驗證事件,則為 true;否則為 false。預設值為 true。

      EnableSessionState定義頁的會話狀态要求。如果啟用了會話狀态,則為 true;如果可以讀取會話狀态但不能進行更改,則為 ReadOnly;否則為 false。預設值為 true。這些值是不區分大小寫的。

      EnableTheming訓示是否在頁上使用主題。如果使用主題,則為 true;否則為 false。預設值為 true。

      EnableViewState訓示是否在頁請求之間保持視圖狀态。如果要保持視圖狀态,則為 true;否則為 false。預設值為 true。

      EnableViewStateMac訓示當頁從用戶端回發時,ASP.NET 是否應該對頁的視圖狀态運作計算機身份驗證檢查 (MAC)。如果應該對視圖狀态運作 MAC 檢查,則為 true;否則為 false。預設值為 false。視圖狀态 MAC 是隐藏變量的加密版本,當某頁被發送到浏覽器時,該頁的視圖狀态永久保持到該變量中。當您将此屬性設定為 true 時,将檢查加密的視圖狀态以驗證它在用戶端未被篡改。注意,将此屬性設定為 true 會影響性能,因為在頁的每次往返行程中,都必須加密和解密變量值。

      ErrorPage定義在出現未處理頁異常時用于重定向的目标 URL。

      Explicit确定是否使用 Visual Basic Option Explicit 模式來編譯頁。如果啟用了 Visual Basic 顯式編譯選項,且所有變量必須使用 Dim、Private、Public 或 ReDim 語句來聲明,則為 true;否則為 false。預設值為 false。除了 Visual Basic,所有其他語言都忽略該屬性。此外,該選項在 Machine.config 配置檔案中被設定為 true。

Inherits定義供頁繼承的代碼隐藏類。它可以是從 Page 類派生的任何類。它與 CodeFile 屬性(包含指向代碼隐藏類的源檔案的路徑)一起使用。

      Language指定在對頁中的所有内聯呈現(<% %> 和 <%= %>)和代碼聲明塊進行編譯時使用的語言。值可以表示任何 .NET Framework 支援的語言,包括 Visual Basic、C# 或 JScript。每頁隻能使用和指定一種語言。

LCID定義 Web 窗體頁的區域設定辨別符。區域設定辨別符是一個 32 位值,該值唯一地定義某個區域設定。除非您使用該屬性為 Web 窗體頁指定不同的區域設定,否則 ASP.NET 使用 Web 伺服器預設的區域設定。注意,LCID 和 Culture 屬性是互相排斥的;如果使用了其中一個屬性,就不能在同一頁中使用另一個屬性。

      LinePragmas确定運作庫是否應在源代碼中生成行雜注。這些是編譯器選項,調試工具通常使用這些選項來标記源檔案中的特定位置。如果應該生成行雜注,則為 true;否則為 false。

      MaintainScrollPositionOnPostback訓示在回發後是否将使用者傳回到用戶端浏覽器中的同一位置。如果應該将使用者傳回到同一位置,則為 true;否則為 false。預設值為 false。開發人員可以通過設定 Web.config 檔案的 <pages> 元素上的 maintainScrollPostitionOnPostback 屬性(注意,此屬性在配置檔案中是區分大小寫的),為所有頁定義該屬性。

MasterPageFile設定内容頁的母版頁或嵌套母版頁的路徑。支援相對路徑和絕對路徑。

     MetaDescription為ASP.NET4.0新增為頁面的SEO優化,指定在響應的 HTML <Meta> 标記中呈現的頁的描述。也可以通過程式設計方式将描述作為頁的屬性來通路。

     MetaKeywords也是ASP.NET4.0新增的為SEO優化,指定在響應的 HTML <Meta> 标記中呈現的頁的Keywords。也可以通過程式設計方式将描述作為頁的屬性來通路。

     ResponseEncoding訓示用于包含頁内容的 HTTP 響應的編碼方案的名稱。配置設定給該屬性的值是有效的編碼名稱。有關可能的編碼名稱的清單,請參見 Encoding 類。您也可以調用 GetEncodings 方法來擷取可能的編碼名稱和 ID 的清單。

     Src指定包含連結到頁的代碼的源檔案的路徑。在連結的源檔案中,可以選擇将頁的程式設計邏輯包含在類中或代碼聲明塊中。可以使用 Src 屬性将生成提供程式連結到頁。有關更多資訊,請參見 BuildProvider 類。另外,在低于 2.0 版的 ASP.NET 中,Src 屬性是另一種将代碼隐藏檔案連結到頁的方法。在 ASP.NET 2.0 中,将代碼隐藏源檔案連結到頁的首選方法是使用 Inherits 屬性來指定類,并使用 CodeFile 屬性來指定該類的源檔案的路徑。

     Strict訓示應使用 Visual Basic OptionStrict 模式來編譯頁。如果啟用了 Option Strict,則為 true;否則為 false。預設值為 false。除了 Visual Basic,所有其他語言都忽略該屬性。

     StyleSheetTheme指定在頁上使用的有效主題辨別符。如果設定了 StyleSheetTheme 屬性,則單獨的控件可以重寫主題中包含的樣式設定。這樣,主題可以提供站點的整體外觀,同時,利用 StyleSheetTheme 屬性中包含的設定可以自定義頁及其各個控件的特定設定。

      Theme指定在頁上使用的有效主題辨別符。如果設定 Theme 屬性時沒有使用 StyleSheetTheme 屬性,則将重寫控件上的單獨的樣式設定,允許您建立統一而一緻的頁外觀。

     Title指定在響應的 HTML <title> 标記中呈現的頁的标題。也可以通過程式設計方式将标題作為頁的屬性來通路。

     Trace訓示是否啟用跟蹤。如果啟用了跟蹤,則為 true;否則為 false。預設值為 false。

     TraceMode訓示當啟用跟蹤時如何為頁顯示跟蹤消息。可能的值為 SortByTime 和 SortByCategory。當啟用跟蹤時,預設值為 SortByTime。

     Transaction訓示在頁上是否支援事務。可能的值有 Disabled、NotSupported、Supported、Required 和 RequiresNew。預設值為 Disabled。

     UICulture指定用于頁的使用者界面 (UI) 區域性設定。支援任何有效的 UI 區域性值。

     ValidateRequest訓示是否應發生請求驗證。如果為 true,請求驗證将根據具有潛在危險的值的寫死清單檢查所有輸入資料。如果出現比對情況,将引發 HttpRequestValidationException 異常。預設值為 true。該功能在計算機配置檔案 (Machine.config) 中啟用。可以在應用程式配置檔案 (Web.config) 中或在頁上将該屬性設定為 false 來禁用該功能。該功能有助于減少對簡單頁或 ASP.NET 應用程式進行跨站點腳本攻擊的風險。如果應用程式不能正确驗證使用者輸入,則可能會受到多種類型的格式錯誤的輸入的攻擊,包括跨站點腳本攻擊和 Microsoft SQL Server 注入式攻擊。應該仔細地評估應用程式中所有形式的輸入,并確定對它們進行了正确地驗證和編碼,或者確定應用程式在處理資料或将資訊發送回用戶端之前已退出。除此之外,别無它法。

       ViewStateEncryptionMode使用三個可能的枚舉值來确定如何加密視圖狀态:Auto、Always 或 Never。預設值為 Auto,表示如果單個控件請求進行加密,将加密視圖狀态。

       ViewStateMode這個屬性可以單獨設定控件的視圖狀态。在以前版本的 ASP.NET 中,控件的視圖隻有在 Page 的 ViewState 啟用的前提下才可以單獨控制。在 ASP.NET4.0 中,控件的視圖狀态可以單獨設定了,也就是說,即使頁面的視圖狀态沒有啟用,控件依然可以啟用視圖狀态。

ViewStateMode 屬性是個枚舉值:InheritL:視圖狀态從父控件繼承;Enabled:即使父控件的視圖狀态沒有啟用,也啟用該控件的視圖狀态;Disabled:即使父控件的視圖狀态啟用了,也禁用此控件的視圖狀态。

       WarningLevel訓示您希望編譯器将警告視為錯誤(進而中止對頁進行編譯)的編譯器警告等級。可能的警告等級為 0 到 4。有關更多資訊,請參見 WarningLevel 屬性。

--------------------- 

作者:開心就是最好 

來源:CSDN 

原文:https://blog.csdn.net/u010678947/article/details/19974217 

版權聲明:本文為部落客原創文章,轉載請附上博文連結!