@ Control
[このドキュメントはプレビューのみを目的としており、以降のリリースで変更される可能性があります。プレースホルダーとして空白のトピックが含まれています。]
ASP.NET ページのパーサーおよびコンパイラで使用される、ユーザー コントロール (.ascx ファイル) 固有の属性を定義します。 このディレクティブを使用できるのは、(ソース コードは .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 Version 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 に設定されます。詳細については、「構成ファイル」および「ASP.NET Configuration Files」を参照してください。
Inherits
継承するコントロールの分離コード クラスを定義します。 このクラスには、UserControl クラスから派生した任意のクラスを指定できます。 分離コード クラスのソース ファイルへのパスを格納する CodeFile 属性と組み合わせて使用します。 分離コード クラスの詳細については、「ASP.NET Web Page Code Model」を参照してください。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" %>