@ Control
ASP.NET ページのパーサーおよびコンパイラで使用される、ユーザー コントロール (.ascx ファイル) 固有の属性を定義します。このディレクティブを使用できるのは、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
コントロールの、参照される分離コード ファイルへのパスを指定します。この属性は、Inherits 属性と組み合わせて、分離コード ソース ファイルをユーザー コントロールに関連付けるために使用します。この属性は、コンパイル済みコントロールに対してのみ有効です。
- CodeFileBaseClass
コントロールの基本クラスおよびその関連分離コード クラスへのパスを指定します。この属性は省略可能ですが、CodeFile 属性を使用する場合は必須です。この属性は、共通フィールド (およびオプションで関連イベント) を基本クラスに定義して、ユーザー コントロールに宣言されているコントロールを参照する場合など、共有シナリオを実装する際に使用します。この属性を使用しないでフィールドを基本クラスに定義した場合、ASP.NET コード生成モデル上の理由により、コンパイルすると、ユーザー コントロールに宣言されているコントロールの新しいメンバ定義が (別の部分クラス スタブ内に) 生成され、意図とは異なる動作になります。そうではなく、CodeFileBaseClass 属性を使用して基本クラスをユーザー コントロールに関連付け、部分クラス (名前は Inherits 属性に割り当てられ、ソース ファイルは CodeFile 属性により参照されている) を基本クラスの派生にしておくと、コード生成後に、基本クラスのフィールドからユーザー コントロールに含まれるコントロールを参照できるようになります。
- CompilationMode
コントロールをコンパイルするかどうかを、列挙体オプションの 1 つが指定された文字列を使用して設定します。既定値は 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 の Explicit コンパイル オプションを有効にして、すべての変数を Dim、Private、Public、または ReDim のいずれかのステートメントを使用して宣言する必要があることを示す場合は true を指定します。それ以外の場合は false を指定します。既定値は false です。注意
この属性は、Visual Basic 以外の言語では無視されます。また、このオプションは、Machine.config 構成ファイルで true に設定されます。詳細については、「マシン構成ファイル」を参照してください。
- Inherits
継承するコントロールの分離コード クラスを定義します。このクラスには、UserControl クラスから派生した任意のクラスを指定できます。分離コード クラスのソース ファイルへのパスを格納する CodeFile 属性と組み合わせて使用します。分離コード クラスの詳細については、「ASP.NET Web ページのコード モデル」を参照してください。
- Language
コントロール内のすべてのインライン表示ブロック (<% %> および <%= %>) とコード宣言ブロックをコンパイルするときに使用する言語を指定します。値には、Visual Basic、C#、JScript など、.NET Framework でサポートされるすべての言語を指定できます。各コントロールで使用および指定できる言語は 1 つだけです。
- LinePragmas
ランタイムがソース コード内に行プラグマを生成するかどうかを指定します。行プラグマはデバッグ ツールで頻繁に使用されるコンパイラ オプションで、ソース ファイルの特定の場所をマークするために使用されます。行プラグマを生成する場合は true を指定します。それ以外の場合は false を指定します。
Src
コントロールにリンクされるコードを含むソース ファイルへのパスを指定します。リンクされるソース ファイルでは、コントロールのプログラミング ロジックの格納場所としてクラスまたはコード生成ブロックを選択できます。Src 属性を使用すると、ビルド プロバイダをコントロールにリンクできます。詳細については、BuildProvider クラスを参照してください。また、ASP.NET の 2.0 より前のバージョンでは、Src 属性は分離コード ファイルをコントロールにリンクする代替方法として使用されていました。ASP.NET バージョン 2.0 では、分離コード ソース ファイルをコントロールにリンクする方法として、Inherits 属性でクラスを指定し、CodeFile 属性でそのクラスのソース ファイルへのパスを指定することを推奨しています。
Strict
コントロールを Visual Basic Option Strict モードでコンパイルする必要があることを指定します。Option Strict が有効の場合は true を指定します。それ以外の場合は false を指定します。既定値は false です。注意
この属性は、Visual Basic 以外の言語では無視されます。
- TargetSchema
コントロール上のコンテンツを検証するスキーマの名前を指定します。この属性は説明専用で、検証は実際には実行されず、パーサーによって無視されます。
- WarningLevel
コンパイラが警告をエラーとして扱ってコントロールのコンパイルを中止する、コンパイラ警告レベルを指定します。指定できる警告レベルは 0 ~ 4 です。詳細については、WarningLevel プロパティを参照してください。
解説
このディレクティブは、ユーザー コントロールだけで使用できます。ユーザー コントロールは、.ascx という拡張子の付いたファイルで定義します。1 つの .ascx ファイルに含めることができる @ Control ディレクティブは 1 つだけです。また、@ Control ディレクティブ 1 つにつき定義できる Language 属性も 1 つだけです。これは、コントロール 1 つにつき使用できる言語が 1 つだけだからです。
注意
@ Control ディレクティブには、ソース ファイル全体に適用される、他のディレクティブと共通の属性があります。たとえば、@ Page ディレクティブ (Web ページの .aspx ファイルで使用) や @ Master ディレクティブ (マスタ ページの .master ファイルで使用) などがあります。
@ Control ディレクティブに複数の属性を定義するには、各属性/値のペアを 1 つの空白で区切ります。各属性を指定する際、属性とその値とを結ぶ等号 (=) の左右どちらにも空白を挿入しないでください。例については、このトピックの「例」を参照してください。
使用例
ASP.NET ページ コンパイラに対して、インライン コード言語として Visual Basic を使用し、EnableViewState 属性を使用して、一連の HTTP 要求でのビューステートの保存を無効にするように指示するコード例を次に示します。
<%@ Control Language="VB" EnableViewState="false" %>