@ Control

定义 ASP.NET 页分析器和编译器使用的特定于用户控件(.ascx 文件)的特性。 此指令只能用于(其源代码包含在 .ascx 文件中)。 有关用户控件的更多信息,请参见ASP.NET 用户控件

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

特性

  • AutoEventWireup
    指示控件的事件是否自动匹配。 如果启用事件自动匹配,则为 true;否则为 false。 默认值为 true。 有关更多信息,请参见 ASP.NET Web 服务器控件事件模型

  • ClassName
    一个字符串,用于指定需在请求时进行动态编译的控件的类名。 此值可以是任何有效的类名,并且可以包括类的完整命名空间(一个完全限定的类名)。 如果没有为此特性指定值,已编译控件的类名将基于该控件的文件名。

    其他页或控件可以通过使用 @ Reference 指令来引用分配给该控件的类名。

  • ClientIDMode
    指定用于生成控件 ClientID 值的算法。 页的默认值为 AutoID

    控件的默认值为 Inherit。 因此,用户控件中控件的默认算法由用户控件的 ClientID 设置决定。 可以在 @ Page 指令或 Web.config 文件的 pages 元素中的页级别中设置不同的默认值。 有关该算法的详细信息,请参阅 ClientIDMode

  • CodeBehind
    指定包含与控件关联的类的已编译文件的名称。 该特性不能在运行时使用。

    注意注意

    提供此特性是为了与以前版本的 ASP.NET 兼容,以实现代码隐藏功能。在 ASP.NET 2.0 版中,应改用 CodeFile 特性指定该源文件的名称,同时使用 Inherits 特性指定该类的完全限定名称。

  • CodeFile
    指定所引用的控件代码隐藏文件的路径。 此特性与 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 模式来编译控件。 如果启用 Visual Basic 显式编译选项,且所有变量必须使用 Dim、Private、Public 或 ReDim 语句进行声明,则为 true;否则为 false。 默认值为 false。

    注意注意

    除了 Visual Basic,所有其他语言都忽略此特性。此外,该选项在 Machine.config 配置文件中被设置为 true。有关更多信息,请参见配置文件ASP.NET 配置文件

  • Inherits
    定义供控件继承的代码隐藏类。 它可以是从 UserControl 类派生的任何类。 它与 CodeFile 特性(包含指向代码隐藏类的源文件的路径)一起使用。 有关代码隐藏类的更多信息,请参见 ASP.NET 网页代码模型

  • Language
    指定在编译控件中所有内联呈现(<% %> 和 <%= %>)和代码声明块时使用的语言。 值可以表示任何 .NET Framework 支持的语言,包括 Visual Basic、C# 或 JScript。 对于每个控件,只能使用和指定一种语言。

  • LinePragmas
    确定运行时是否应在源代码中生成行杂注。 这些是编译器选项,通常由调试工具用来在源文件中标记特定位置。 如果应生成行杂注,则为 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
    指示您想要编译器在哪个编译器警告等级将警告作为错误来处理,并中止控件编译。 可能的警告等级为 0 到 4。 有关更多信息,请参见 WarningLevel 属性。

备注

该指令只能用于用户控件中。 用户控件在带有 .ascx 扩展名的文件中进行定义。 每个 .ascx 文件只能包含一条 @ Control 指令。 此外,对于每个 @ Control 指令,您只能定义一个 Language 特性,因为每个控件只能使用一种语言。

注意注意

@ Control 指令与适用于整个源文件的其他指令有许多共同的特性,例如 @ Page 指令(在网页的 .aspx 文件中使用)和 @ Master 指令(在母版页的 .master 文件中使用)。

若要定义 @ Control 指令的多个特性,请用一个空格分隔每个特性/值对。 对于特定特性,不要在将该特性与其值相连的等号 (=) 两侧加空格。 有关示例,请参见本主题的“示例”部分。

示例

下面的代码示例指示 ASP.NET 页编译器使用 Visual Basic 作为内联代码语言,并使用 EnableViewState 特性禁止跨 HTTP 请求保存视图状态。

<%@ Control Language="VB" EnableViewState="false" %>

请参见

参考

文本模板指令语法

@ Page

其他资源

ASP.NET 页语法

ASP.NET 用户控件