@Page指令 定義頁面屬性
@Page指令允許為ASP.NET頁面(.aspx)指定解析和編譯頁面時使用的屬性和值。這是最常用的指令。ASP.NET頁面是ASP.NET的一個重要部分,所以它有許多屬性。表3-4總結了@Page指令的可用屬性。
表 3-4
屬 性 |
說 明 |
AspCompat |
若其值為True,就允許頁面在單線程的單元中執行,這個屬性的預設設定是False。 |
Async |
指定ASP.NET頁面是同步或非同步處理 |
AutoEventWireUp |
設定為True時,指定頁面事件自動觸發。這個屬性的預設設定是True |
Buffer |
設定為True時,支援HTTP響應緩衝。這個屬性的預設設定是True |
ClassName |
指定編譯頁面時綁定到頁面上的類名 |
CodeFile |
引用與頁面相關的後台編碼檔案 |
CodePage |
指定響應的字碼頁面值 |
CompilerOptions |
編譯器字串,指定頁面的編譯選項 |
CompileWith |
包含一個String值,指向所使用的後台編碼檔案 |
ContentType |
把響應的HTTP內容類型定義為標準MIME類型 |
Culture |
指定頁面的文化設定。ASP.NET 2.0允許把Culture 屬性的值設定為Auto ,支援自動檢測需要的文化 |
Debug |
設定為True時,用偵錯符號編譯頁面 |
Description |
提供頁面的文本描述。ASP.NET解析器忽略這個屬性及其值 |
EnableSessionState |
設定為True時,支援頁面的工作階段狀態,其預設設定是True |
EnableTheming |
設定為True時,頁面可以使用主題。其預設設定是False. |
EnableViewState |
設定為True時,在頁面中維護檢視狀態,其預設設定是True |
EnableViewStateMac |
設定為True時,當使用者回送頁面時,頁面會在檢視狀態上進行機器範圍內的身分識別驗證,其預設設定是False |
ErrorPage |
為所有未處理的頁面異常指定用於發送資訊的URL |
Explicit |
設定為True時,支援Visual Basic的Explicit選項。其預設設定是False |
Language |
定義內建顯示和指令碼塊所使用的語言 |
LCID |
為Web Form的頁面定義本地標識符 |
LinePragmas |
Boolean值,指定得到的程式集是否使用行附註 |
MasterPageFile |
帶一個 String 值,指向頁面所使用的master頁面的地址。這個屬性在內容頁面中使用 |
MaintainScrollPositionOn Postback |
帶一個Boolean 值,表示在回送頁面時,頁面是位於相同的滾動位置上,還是在最高的位置上重建頁面 |
PersonalizationProvider |
帶一個 String 值,指定把個人化資訊應用於頁面時所使用的個人化提供者名 |
ResponseEncoding |
指定頁面內容的響應編碼 |
(續表)
屬 性 |
說 明 |
SmartNavigation |
指定是否為功能更豐富的瀏覽器啟用ASP.NET智能導航功能。它把回送資訊返回到頁面的當前位置,其預設值是False |
Src |
指向類的源檔案,用於所顯示的頁面的後台編碼 |
Strict |
設定為True時,使用Visual Basic Strict模式編譯頁面,其預設值是False |
Theme |
使用ASP.NET 2.0的主題功能,把指定的主題應用於頁面 |
Title |
應用頁面的標題。這個屬性主要用於必須應用頁面標題的內容頁面,而不是應用master頁面中指定內容的頁面 |
Trace |
設定為True時,啟用頁面跟蹤,其預設值是False |
TraceMode |
指定啟用跟蹤功能時如何顯示跟蹤訊息。這個屬性的設定可以是SortByTime 或SortByCategory,預設設定是SortByTime |
Transaction |
指定頁面上是否支援交易處理。這個屬性的設定可以是NotSupported、Supported、Required和RequiresNew,預設設定是NotSupported |
UICulture |
UICulture 屬性的值指定ASP.NET 頁面使用什麼UI Culture。 ASP.NET 2.0允許給UICulture屬性使用Auto值,支援自動檢測UICulture |
ValidateRequest |
設定為True時,根據一組潛在危險的值檢查表單輸入值,協助防止Web應用程式受到有害的攻擊,例如JavaScript攻擊。預設值是True |
WarningLevel |
指定停止編譯頁面時的編譯警告層級,其值可以是0到4 |
下面是使用@Page指令的一個樣本:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
Inherits="_Default" %>
@Master指令 指定主版頁面
@Master指令非常類似於@Page指令,但@Master指令用於master頁面(.master)。在使用@Master指令時,要指定和網站上的內容頁面一起使用的模板頁面的屬性。內容頁面(使用@Page指令建立)可以繼承master頁面上的所有master內容(在master頁面上使用@Master指令定義的內容)。儘管這兩個指令是類似的,但@Master指令的屬性比@Page指令少。@Master指令的可用屬性如表3-5所示。
表 3-5
屬 性 |
說 明 |
AutoEventWireUp |
設定為True時,指定master頁面的事件是否自動觸發。預設設定為True |
ClassName |
指定編譯頁面時綁定到master頁面上的類名 |
CodeFile |
引用與頁面相關的後台編碼檔案 |
(續表)
屬 性 |
說 明 |
CompilerOptions |
編譯字串,表示master頁面的編譯選項 |
CompileWith |
帶一個String值,指向用於master頁面的後台編碼檔案 |
Debug |
設定為True時,用偵錯符號編譯master頁面 |
Description |
提供master頁面的文本描述。ASP.NET 解析器會忽略這個屬性及其值 |
EnableTheming |
設定為True時,表示master頁面可以使用主題功能。其預設設定是False |
EnableViewState |
設定為True時,維護master頁面的檢視狀態。其預設設定是True |
Explicit |
設定為True時,表示啟用Visual Basic Explicit 選項。其預設設定是False |
Inherits |
指定master頁面要繼承的CodeBehind類 |
Language |
定義內建顯示和指令碼塊使用的語言 |
LinePragmas |
Boolean值,指定得到的程式集是否使用行附註 |
MasterPageFile |
帶一個String值,指向master 頁面所使用的master頁面的地址。master頁面可以使用另一個master頁面,建立嵌套的master頁面 |
Src |
指向類的源檔案,用於要顯示的master頁面的後台編碼 |
Strict |
設定為True時,使用Visual Basic Strict模式編譯master頁面。其預設設定是False |
WarningLevel |
指定停止編譯頁面時的編譯警告層級,其值可以是0到4 |
下面是使用@Master指令的一個例子:
<%@ Master Language="VB" CodeFile="MasterPage1.master.vb"
AutoEventWireup="false" Inherits="MasterPage" %>
@Control指令 使用者控制項
@Control指令類似於@Page指令,但@Control指令是在建立ASP.NET使用者控制項時使用的。@Control指令允許定義使用者控制項要繼承的屬性。這些屬性值會在解析和編譯頁面時賦予使用者控制項。@Control指令的可用屬性比@Page指令少,但其中有許多都可以在建立使用者控制項時進行需要的修改。表3-6詳細介紹了這些可用屬性。
表 3-6
屬 性 |
說 明 |
AutoEventWireUp |
設定為True時,指定使用者控制項的事件是否自動觸發。預設設定為True |
ClassName |
指定編譯頁面時綁定到使用者控制項上的類名 |
CodeFile |
引用與使用者控制項相關的後台編碼檔案 |
CompilerOptions |
編譯字串,表示使用者控制項的編譯選項 |
CompileWith |
帶一個String值,指向用於使用者控制項的後台編碼檔案 |
Debug |
設定為True時,用偵錯符號編譯使用者控制項 |
(續表)
屬 性 |
說 明 |
Description |
提供使用者控制項的文本描述。ASP.NET 解析器會忽略這個屬性及其值 |
EnableTheming |
設定為True時,表示使用者控制項可以使用主題功能。其預設設定是False |
EnableViewState |
設定為True時,維護使用者控制項的檢視狀態。其預設設定是True |
Explicit |
設定為True時,表示啟用Visual Basic Explicit 選項。其預設設定是False |
Inherits |
指定使用者控制項要繼承的CodeBehind類 |
Language |
定義內建顯示和指令碼塊使用的語言 |
LinePragmas |
Boolean值,指定得到的程式集是否使用行附註 |
Src |
指向類的源檔案,用於要顯示的使用者控制項的後台編碼 |
Strict |
設定為True時,使用Visual Basic Strict模式編譯使用者控制項。其預設設定是False |
WarningLevel |
指定停止編譯頁面時的編譯警告層級,其值可以是0到4 |
@Control指令用於ASP.NET使用者控制項。下面是使用該指令的一個例子:
<%@ Control Language="VB" Explicit="True"
CodeFile="WebUserControl.ascx.vb" Inherits="WebUserControl"
Description="This is the registration user control." %>
@Import指令 匯入指定命名空間
namespace
要匯入頁的命名空間的名稱。這可以包括任何包含在 .NET Framework 中的命名空間或自訂命名空間。
@Implements指令 實現指定介面
interface
要在頁或使用者控制項中實現的介面。
<%@ Implements interface="ValidInterfaceName" %>
@Register指令 給命名空間和類名關聯上別名,作為定製伺服器控制項文法中的記號
tagprefix
與命名空間關聯的別名。
tagname
與類關聯的別名。
Namespace
與 tagprefix 關聯的命名空間。
Src
與 tagprefix:tagname 對關聯的聲明性使用者控制項檔案的位置(相對的或絕對的)。
Assembly
與 tagprefix 關聯的命名空間所駐留的程式集。
注意 程式集名稱不包括副檔名。
<%@ Register tagprefix="tagprefix" Namespace="namespace" Assembly="assembly" %><%@ Register tagprefix="tagprefix" Tagname="tagname" Src="pathname" %>
@Assembly指令 把程式集連結到與他相關的頁面或使用者控制項上
-
Name
-
表示要連結到頁的程式集名稱的字串。
注意 程式集名稱不包括副檔名。
-
Src
-
要動態編譯和連結的源檔案的路徑。
注意 不能在同一個 @ Assembly 指令中包含 Name 和 Src 屬性。如果您要使用這兩個屬性,頁上必須包含多個指令。
<%@ Assembly Name="assemblyname" %>
<%@ Assembly Src="pathname" %>
@MasterType指令 把類名與頁面關聯,獲得包含在特定master頁面中的強型別化的引用或者成員
@MasterType指令把一個類名關聯到ASP.NET頁面上,以獲得特定master頁面中包含的強型別化引用或成員。這個指令支援兩個屬性:
● TypeName:設定從中獲得強型別化的引用或成員的衍生類別名。
● VirtualPath:設定從中檢索這些強型別化的引用或成員的頁面地址。
使用@MasterType指令的細節請參閱第8章。下面是它的一個例子:
<%@ MasterType VirtualPath="~/Wrox.master" %>
@OutputCache指令 控制頁面或使用者控制項輸出的快取策略
Duration
頁或使用者控制項進行緩衝的時間(以秒計)。在頁或使用者控制項上設定該屬性為來自對象的 HTTP 響應建立了一個到期策略,並將自動快取頁面或使用者控制項輸出。
注意 該屬性是必需的。如果未包含該屬性,將出現分析器錯誤。
Location
OutputCacheLocation 枚舉值之一。預設值為 Any。
警告 包含在使用者控制項(.ascx 檔案)中的 @ OutputCache 指令不支援此屬性。
Shared
一個布爾值,確定使用者控制項輸出是否可以由多個頁共用。預設值為 false。有關詳細資料,請參見備忘部分。
注意 包含在 ASP.NET 頁(.aspx 檔案)中的 @ OutputCache 指令不支援此屬性。
VaryByCustom
表示自訂輸出緩衝要求的任意文本。如果賦予該屬性的值是 browser,緩衝將隨瀏覽器名稱和主要版本資訊的不同而不同。如果輸入了自訂字串,您必須在應用程式的 Global.asax 檔案中重寫 HttpApplication.GetVaryByCustomString 方法。
VaryByHeader
分號分隔的 HTTP 標題列表,用於使輸出緩衝發生變化。當將該屬性設為多標題時,對於每個指定的標題,輸出緩衝都包含一個請求文檔的不同版本。
注意 設定 VaryByHeader 屬性在所有 HTTP 1.1 緩衝中啟用快取項目,而不僅限於 ASP.NET 緩衝。使用者控制項中的 @ OutputCache 指令不支援此屬性。
VaryByParam
分號分隔的字串列表,用於使輸出緩衝發生變化。預設情況下,這些字串與用 GET 方法屬性發送的查詢字串值對應,或與用 POST 方法發送的參數對應。當將該屬性設定為多參數時,對於每個指定的參數,輸出緩衝都包含一個請求文檔的不同版本。可能的值包括 none、* 和任何有效查詢字串或 POST 參數名稱。
警告 在輸出緩衝 ASP.NET 頁時,該屬性是必需的。它對於使用者控制項也是必需的,除非已經在使用者控制項的 @ OutputCache 指令中包含了 VaryByControl 屬性。如果沒有包含它,則發生分析器錯誤。如果您不想使緩衝內容隨任何指定參數發生變化,請將該值設為 none。如果要使輸出緩衝根據所有參數值發生變化,請將屬性設定為 *。
VaryByControl
一個分號分隔的字串列表,用於更改使用者控制項的輸出緩衝。這些字串代表在使用者控制項中聲明的 ASP.NET 伺服器控制項的 ID 屬性值。
注意 除非已經包含了 VaryByParam 屬性,否則在使用者控制項 @ OutputCache 指令中,該屬性是必需的。ASP.NET 頁中的 @ OutputCache 指令不支援該屬性。
<%@ OutputCache Duration="100" VaryByParam="none" %>
@Reference指令 把頁面或使用者控制項連結到當前的頁面或者使用者控制項上
-
Page
-
Web Form頁,ASP.NET 應該在運行時根據它動態編譯和連結當前頁。
-
Control
-
使用者控制項,ASP.NET 應該在運行時根據它動態編譯和連結當前頁。
-
<%@ Reference page | control="
pathtofile" %>
@PrviousPageType 允許asp.net頁面處理應用程式中另一個頁面的回送資訊
這個指令用於指定跨頁面的傳送過程起始於哪個頁面。在ASP.NET頁面之間的跨頁面傳送過程詳見後面的“跨頁面傳送”一節和第19章。
@PreviousPageType指令是一個新指令,用於處理ASP.NET 2.0提供的跨頁面傳送新功能。這個簡單的指令只包含兩個屬性TypeName和VirtualPath:
● TypeName:設定回送時的衍生類別名。
● VirtualPath:設定回送時所傳送頁面的地址。
asp.net頁面事件
PreInit 預初始化
Init 初始化
InitComplete 初始化完成
PreLoad 預先載入
Load 載入
LoadComplete 載入完成
PreRender 預輸出
PreRenderComplete 輸出完成
Unload 卸載
AbortTransation 終止事務
CommitTransation 提交事務
DataBinding 資料繫結
Disposed 銷毀
Error 錯誤