@ Control

更新:2007 年 11 月

定义 ASP.NET 页分析器和编译器使用的特定于用户控件(.ascx 文件)的属性。此指令只能用于 ASP.NET 用户控件(其源代码包含在 .ascx 文件中)。

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

属性

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

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

    通过使用 @ Reference 指令,另一个页或控件可以引用分配给该控件的类名。

  • 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。有关更多信息,请参见计算机配置文件

  • 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 用户控件