ASP.NET指令是以字符“@”開頭。分析器或編譯器在分析或編譯頁(包括窗體頁和母版頁)、用戶控件或其他資源文件時,頁、控件或文件可以通過ASP.NET指令指定編譯器的屬性。當分析器或編譯器在處理頁、控件或文件時,這些設置生效。通常,這些指令需要包含在頁、控件或文件的開頭處。每個指令都可以包含一個或多個屬性(與值成對出現)。
1頁指令==========@Page
分析器或編譯器在分析或編譯頁時,可以通過@Page指令設置分析器和編譯器的屬性。該指令只能包含在文件擴展名爲.aspx的文件中,聲明其語法如下:
<%@ Page attribute="value" [attribute="value"...] %>
@Page指令只能使用在Web窗體頁(.aspx)中,且每個頁只能包含一條@Page指令。當Web窗體頁使用該指令時,它至少要包含一個屬性。
2用戶控件指令=========@Control
分析器或編譯器在分析或編譯用戶控件(.ascx)時,可以通過@Control指令設置分析器和編譯器的屬性。該指令只能在用戶控件上使用,且一個用戶控件只能包含一條@Control指令。聲明@Control指令的語法如下:
<%@ Control attribute="value" [attribute="value" ... ] %>
3註冊指令==================@Register
@Register指令提供了引用用戶控件或自定義控件的方法,並引用這些控件的文件(頁或者控件)能夠使用被引用的控件。換句話說,該指令創建一個標記前綴,實現被引用的控件和其引用文件之間的關聯。最終,使得控件能夠在其引用文件中呈現出來。
4引用指令===============@Reference
@Reference指令將指定的頁或用戶控件鏈接到當前頁或用戶控件,即在指定的頁或用戶控件和當前頁或用戶控件之間建立動態連接。聲明該指令的語法如下:
<%@ Reference Page="頁的路徑"
Control="用戶控件的路徑"
virtualPath="文件的虛擬路徑" %>
5母版頁指令==========@Master
分析器或編譯器在分析或編譯母版頁(.master)時,可以通過@Master指令設置分析器和編譯器的屬性。該指令只能在母版頁上使用,且一個母版頁只能包含一條@Master指令。聲明@Master指令的語法如下:
<%@ Master attribute="value" [attribute="value"...] %>
6母版頁類型指令=============@MasterType
@MasterType指令提供創建對該母版頁(.master)的強類型引用的方法。聲明該指令的語法如下:
<%@ MasterType attribute="value" [attribute="value"...] %>
@MasterType指令包含兩個屬性:TypeName和VirtualPath。其中,TypeName屬性指定母版頁的類型的名稱;VirtualPath屬性指定生成強類型引用的文件的路徑,它的值爲相對路徑。
7上一頁類型指令=======@PreviousPageType
@PreviousPageType指令提供了獲取上一頁(當前頁的Page對象的PreviousPage屬性的值)的強類型的方法。它只能使用在Web窗體頁(.aspx)上,聲明該指令的語法如下:
<%@ PreviousPageType attribute="value" [attribute="value"...] %>
@PreviousPageType指令包含兩個屬性:TypeName和VirtualPath。其中,TypeName屬性指定上一頁的類型的名稱;VirtualPath屬性指定生成強類型引用的文件的路徑,它的值爲相對路徑。一般情況下,TypeName和VirtualPath屬性不能同時使用。下面的代碼示例設置了生成強類型的文件的VirtualPath屬性的值爲“~/OtherPreviousPageType.aspx”。
<%@ PreviousPageType VirtualPath="~/OtherPreviousPageType.aspx" %>
8輸出緩衝指令============@OutputCache
@OutputCache指令設置Web窗體頁或用戶控件的輸出緩存策略。
9導入指令==========@Import
@Import指令將命名空間導入到文件中,使得該文件可以使用導入的命名空間中的類和接口。它不但可以導入.NET框架類庫中的命名空間,而且可以導入用戶自定義的命名空間。聲明該指令的語法如下:
<%@ Import namespace="value" %>
10程序集指令===========@Assembly
@Assembly指令將程序集(.dll)鏈接到當前頁,使得當前頁可以使用程序集中的類和接口。聲明該指令的語法如下:
<%@ Assembly Name="assemblyname" %>
<%@ Assembly Src="pathname" %>
11執行指令=====@Implements
@Implements指令指定當前文件(如Web窗體頁、用戶控件等)需要實現的.NET框架類庫中的接口。如果用戶在文件中需要實現接口時,用戶必須在<script>標記中實現接口所需要的方法和屬性。若文件需要實現多個接口,則可以在該文件上多次使用@Implements指令。@Implements指令只包含一個屬性:interface。該屬性表示當前文件需要實現的接口的名稱。聲明@Implements指令的語法如下:
<%@ Implements interface="MyValidInterfaceName" %>