@ Control
更新:2007 年 11 月
定義 ASP.NET Web 網頁剖析器 (Parser) 和編譯器 (Compiler) 所使用的使用者控制項 (.ascx 檔案) 專用屬性 (Attribute)。這個指示詞只能與 ASP.NET 使用者控制項 搭配使用 (其原始程式碼都包含在 .ascx 檔案中)。
<%@ Control attribute="value" [attribute="value" ... ] %>
屬性
AutoEventWireup
表示控制項的事件是否已自動連接。如果啟用了事件自動連接,則為 true,否則為 false。預設值為 true。如需詳細資訊,請參閱 ASP.NET Web 伺服器控制項事件模型。ClassName
用以指定控制項類別名稱的字串,此類別將會在要求控制項時動態進行編譯。這個值可以是任何有效的類別名稱,而且能夠包括類別的完整命名空間 (完整類別名稱)。如果沒有指定這個屬性的值,已編譯之控制項的類別就會根據控制項的檔案名稱來命名。其他網頁或控制項可以參考以 @ Reference 指示指派至此控制項的類別名稱。
CodeBehind
指定編譯檔的名稱,其中包含與控制項關聯的類別。在執行階段時不會使用這個屬性。注意事項: 這個屬性是為了前版 ASP.NET 的回溯相容性而加入,以便實作程式碼後置功能。在 ASP.NET 2.0 版中,您應該改用 CodeFile 屬性指定原始程式檔名稱,並使用 Inherits 屬性指定完整類別名稱。
CodeFile
指定控制項之參考程式碼後置 (Code-Behind) 的檔案路徑。這個屬性會與 Inherits 屬性搭配使用,以便使程式碼後置的檔案與使用者控制項關聯。這個屬性只會對已編譯的控制項有效。CodeFileBaseClass
指定控制項之基底類別的路徑,及其關聯之程式碼後置的類別。這個屬性是選擇性的,不過在使用時,CodeFile 屬性必須存在。當您要實作共用的案例,並在其中定義通用欄位 (以及選擇性的關聯事件) 時,請在基底類別中使用此屬性參考使用者控制項所宣告的控制項。由於 ASP.NET 程式碼產生模型的緣故,如果在基底類別中定義欄位而不使用這個屬性,在編譯時期便會針對在使用者控制項 (在個別的部分類別 Stub 之內) 中宣告的控制項產生新的成員定義,而且您所需要的案例不會有任何作用。不過如果使用 CodeFileBaseClass 屬性使基底類別與使用者控制項關聯,而且使您的部分類別 (其名稱會指派至 Inherits 屬性,而且其原始程式檔會由 CodeFile 屬性所參考) 繼承自基底類別,則基底類別中的欄位就能在程式碼產生後參考使用者控制項中的控制項。CompilationMode
以指定數個列舉選項之一的字串,設定控制項是否應該編譯。預設值為 Always,因此會根據預設編譯 .aspx 控制項。如需詳細資料,請參閱 CompilationMode 列舉型別 (Enumeration)。CompilerOptions
包含編譯器選項的字串,用以編譯控制項。在 C# 和 Visual Basic 中,這是一連串的編譯器命令列參數。如需編譯器選項的詳細資訊,請參閱 C# 編譯器選項或 Visual Basic 編譯器。Debug
表示控制項是否應該使用偵錯符號進行編譯。如果應該以偵錯符號編譯控制項,則為 true,否則為 false。由於這項設定會影響效能,您應該只在開發期間將此屬性設定為 true。Description
提供控制項的文字描述。ASP.NET 剖析器會忽略這個值。EnableTheming
表示主題是否用於控制項。如果有使用主題,則為 true,否則為 false。預設值為 true。EnableViewState
表示是否要在跨控制項要求之間維持檢視狀態。如果要維持檢視狀態,則為 true,否則為 false。預設值為 true。Explicit
決定是否使用 Visual Basic Option Explicit 模式編譯控制項。true 表示啟用 Visual Basic 明確編譯選項,而且必須使用 Dim、Private、Public 或 ReDim 陳述式宣告所有變數,否則為 false。預設值為 false。注意事項: 除了 Visual Basic 以外的語言都會忽略這個屬性。此外,這個選項在 Machine.config 組態檔中設定為 true。如需詳細資訊,請參閱電腦組態檔。
Inherits
定義控制項要繼承之程式碼後置的類別。這可以是任何衍生自 UserControl 類別的類別。與 CodeFile 屬性一起使用,這個屬性包含程式碼後置檔案之原始程式檔的路徑。如需程式碼後置類別的詳細資訊,請參閱 ASP.NET Web 網頁程式碼模型。Language
指定編譯控制項內所有內嵌轉譯 (<% %> 和 <%= %>) 和程式碼宣告區塊時使用的語言。值可以表示任何 .NET Framework 支援的語言,包括 Visual Basic、C# 或 JScript。每個控制項只能指定並使用一種語言。LinePragmas
決定執行階段是否應該在原始程式碼中產生行 pragma。這些是偵錯工具在標記原始程式檔中的特定位置時,所經常使用的編譯器選項。如果應該產生行 pragma,則為 true,否則為 false。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 以外的語言都會忽略這個屬性。
TargetSchema
指定驗證控制項上內容之結構描述的名稱。此項僅提供描述性用途,不會執行確實的驗證,而且剖析器會忽略這個屬性。WarningLevel
指示您要編譯器將警告視為錯誤,進而中止控制項編譯 (Compilation) 的編譯器警告層級。可能的警告層級為 0 到 4。如需詳細資訊,請參閱 WarningLevel 屬性。
備註
這個指示詞只能使用於使用者控制項。使用者控制項是定義在具有.ascx 副檔名的檔案中。您只能在每個 .ascx 檔案中包含一個 @ Control 指示詞。而且,由於每個控制項只能使用一種語言,因此您只能在每個 @ Control 指示詞定義一個 Language 屬性。
注意事項: |
---|
@ Control 指示詞與套用至整個原始程式檔的其他指示詞擁有一些共通的屬性,例如 @ Page 指示詞 (在 Web 網頁的 .aspx 檔案中使用),以及 @ Master 指示詞 (在主版頁面 (Master Page) 的 .master 檔案中使用)。 |
若要為 @ Control 指示詞定義多個屬性,請以單一空格分隔每個屬性/值組。對於特定的屬性,請勿在連接屬性以及其值的等號 (=) 任何一邊包含空格。如需範例,請參閱本主題的<範例>一節。
範例
下列程式碼指示 ASP.NET Web 網頁編譯器使用 Visual Basic 做為內嵌程式碼語言,並使用 EnableViewState 屬性停用儲存所有 HTTP 要求間的檢視狀態。
<%@ Control Language="VB" EnableViewState="false" %>