@ Control

定義使用者控制項 (.ascx 檔案) 的特定屬性,可由 ASP.NET 網頁剖析器和編譯器使用。 這個指示詞只能與 搭配使用 (其原始程式碼都包含在 .ascx 檔案中)。 如需使用者控制項的詳細資訊,請參閱ASP.NET User Controls

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

屬性

  • AutoEventWireup
    表示控制項的事件是否會自動連接。 如果有啟用事件自動連接則為 true,否則為 false。 預設值為 true。 如需詳細資訊,請參閱 ASP.NET Web Server Control Event Model

  • ClassName
    用以指定控制項類別名稱的字串,此類別將會在要求控制項時動態進行編譯。 這個值可以是任何有效的類別名稱,而且能夠包括類別的完整命名空間 (完整類別名稱)。 如果沒有指定這個屬性的值,已編譯之控制項的類別就會根據控制項的檔案名稱來命名。

    另一個網頁或控制項可以參考以 @ Reference 指示詞指派至此控制項的類別名稱。

  • ClientIDMode
    指定要用來產生控制項之 ClientID 值的演算法。 頁面的預設值是 AutoID

    控制項的預設值為 Inherit。 因此,使用者控制項中的預設控制項演算法是由使用者控制項的 ClientID 設定所決定。 不同的預設值,可以在頁面層級於 @ Page 指示詞中設定,或是在 Web.config 檔的 pages 項目中設定。 如需演算法的詳細資訊,請參閱 ClientIDMode

  • 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 列舉型別。

  • 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。如需詳細資訊,請參閱 組態檔ASP.NET Configuration Files

  • Inherits
    定義控制項要繼承之程式碼後置的類別。 這可以是從 UserControl 類別衍生的任何類別。 與 CodeFile 屬性一起使用,這個屬性包含程式碼後置檔案之原始程式檔的路徑。 如需程式碼後置類別的詳細資訊,請參閱 ASP.NET Web Page Code Model

  • 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 屬性 (Property)。

備註

這個指示詞只能使用於使用者控制項。 使用者控制項是定義在具有.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" %>

請參閱

參考

文字範本指示詞語法

@ Page

其他資源

ASP.NET 網頁語法

ASP.NET User Controls