@ 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 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 構成ファイル」を参照してください。

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

参照

参照

テキスト テンプレートのディレクティブの構文

@ Page

その他の技術情報

ASP.NET ページの構文

ASP.NET ユーザー コントロール