@ 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" %>