@ Page

ASP.NET ページのパーサーおよびコンパイラで使用されるページ (.aspx ファイル) 固有の属性を定義します。

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

属性

  • Async
    ページを非同期ハンドラーにします (つまり、ページで IHttpAsyncHandler の実装を使用して要求を処理します)。

    既定値は、false です。

  • AsyncTimeOut
    非同期タスクを処理する際に使用されるタイムアウト間隔 (秒単位) を定義します。 既定値は 45 秒です。

    値は、整数にする必要があります。

    詳細については、AsyncTimeout プロパティのトピックを参照してください。

  • AspCompat
    true に設定すると、シングルスレッド アパートメント (STA: Single-Threaded Apartment) スレッド上でページを実行できます。 これにより、Microsoft Visual Basic 6.0 で開発されたコンポーネントなどの STA コンポーネントをページから呼び出すことができます。 この属性を true に設定した場合、アンマネージ ASP (Active Server Pages) 組み込みオブジェクトへのアクセスを必要とする COM+ Version 1.0 コンポーネントをページから呼び出すこともできます。 これらのコンポーネントには、ObjectContext オブジェクトまたは OnStartPage メソッドによってアクセスできます。 既定値は、false です。

    メモメモ

    この属性を true に設定すると、ページのパフォーマンスが低下する可能性があります。詳細については、「解説」を参照してください。

  • AutoEventWireup
    ページのイベントを自動接続するかどうかを示します。 イベントの自動接続を有効にする場合は true、それ以外の場合は false を指定します。 既定値は、true です。 詳細については、「ASP.NET Web サーバー コントロールのイベント モデル」を参照してください。

  • Buffer
    HTTP 応答バッファリングを有効にするかどうかを指定します。 ページ バッファリングを有効にする場合は true、それ以外の場合は false を指定します。

    既定値は、true です。

  • ClassName
    ページが要求されたときに動的にコンパイルされるページのクラス名を指定する文字列。 この値には、すべての有効なクラス名を指定でき、完全修飾クラス名を含めることもできます。 この属性の値が指定されない場合、コンパイルされたページのクラス名はページのファイル名に基づきます。また、既定の名前空間 ASP を使用します。 ClassName 属性の値を完全な名前空間なしで指定すると、名前空間 ASP が使用され、指定したクラス名と組み合わせて、完全修飾クラス名が作成されます。

    @ Reference ディレクティブを使用することにより、最初のページに割り当てられたクラス名を別のページが参照できます。

    メモメモ

    分離コード ページ クラスでは、.aspx ページに完全修飾クラス名を使用し、関連付けられた .aspx ページ クラスのメンバーを参照できます。ただし、ソースの保護を有効にしてサイトをプリコンパイルする場合、分離コード ページ クラスは .aspx ページ クラスと同じアセンブリに配置されません。そのため、分離コード ファイルのクラス参照は機能しません。プリコンパイルの詳細については、「ASP.NET のプリコンパイルの概要」を参照してください。

  • ClientIDMode
    コントロールの ClientID 値を生成するために使用するアルゴリズムを指定します。 既定値は Predictable です。 コントロールの既定値は、Inherit です。 したがって、ページ内のコントロールの既定のアルゴリズムは、ページの ClientID の設定によって決定されます。 Web.config ファイルの pages 要素では、異なる既定値を設定できます。 アルゴリズムの詳細については、ClientIDMode クラスのトピックを参照してください。

  • ClientTarget
    ASP.NET サーバー コントロールがコンテンツを表示する対象のユーザー エージェント (通常は Microsoft Internet Explorer などの Web ブラウザー) を示します。 この値は、アプリケーションの構成ファイルの <clientTarget> セクション内で定義されている有効な任意のエイリアスにできます。 詳細については、ClientTarget プロパティのトピックを参照してください。

  • CodeBehind
    ページに関連付けられているクラスを含むコンパイル済みのファイルの名前を指定します。 この属性は実行時には使用されません。

    この属性は Web アプリケーション プロジェクトで使用されます。 CodeFile 属性は Web サイト プロジェクトで使用されます。 Visual Studio の Web プロジェクトの種類の詳細については、「Web アプリケーション プロジェクトと Web サイト プロジェクト」を参照してください。

  • CodeFile
    ページの参照される分離コード ファイルのパスを指定します。 この属性は、Inherits 属性と共に使用され、分離コード ソース ファイルを Web ページと関連付けます。 属性は、コンパイルされたページに対してだけ有効です。

    この属性は Web サイト プロジェクトで使用されます。 CodeBehind 属性は Web アプリケーション プロジェクトで使用されます。 Visual Studio の Web プロジェクトの種類の詳細については、「Web アプリケーション プロジェクトと Web サイト プロジェクト」を参照してください。

  • CodeFileBaseClass
    ページの基本クラスの型名と、それに関連付けられた分離コード クラスを指定します。 この属性は省略可能ですが、使用する場合は CodeFile 属性も必要です。 基本クラスで共通フィールド (および、オプションで関連するイベント) を定義して、Web ページで宣言されたコントロールを参照する共有シナリオを実装する際に、この属性を使用します。 ASP.NET コード生成モデルが理由で、この属性を使用せずに基本クラスでフィールドを定義した場合、コンパイル時に、(別個の部分クラス スタブ内の) Web ページで宣言されたコントロールに新しいメンバー定義が生成され、必要なシナリオが機能しない可能性があります。 しかし、CodeFileBaseClass 属性を使用して基本クラスをページに関連付け、部分クラス (その名前は Inherits 属性に割り当てられ、そのソース ファイルは CodeFile 属性により参照されます) を基本クラスから継承した場合、基本クラスのフィールドはコード生成後にページ上のコントロールを参照できるようになります。

  • CodePage
    応答に使用されるエンコーディング方式の値を示します。 値は、エンコーディング方式の ID として機能する整数です。 使用可能な CodePage ID の一覧については、Encoding クラスを参照してください。

  • CompilationMode
    いくつかの列挙オプションのいずれかを指定する文字列を使用して、ページをコンパイルするかどうかを設定します。 既定値は Always であるため、.aspx ページは既定でコンパイルされます。 詳細については、CompilationMode 列挙値を参照してください。

  • CompilerOptions
    ページをコンパイルするために使用されるコンパイラ オプションを含む文字列。 C# と Visual Basic では、これはコンパイラ コマンド ライン スイッチのシーケンスです。 コンパイラ オプションの詳細については、「C# コンパイラ オプション」または「Visual Basic コンパイラ」を参照してください。

  • ContentType
    応答の HTTP コンテンツ タイプを標準の MIME タイプとして定義します。 すべての有効な HTTP コンテンツ タイプ文字列をサポートします。 使用可能な値の一覧については、MSDN ライブラリで 「MIME」を検索してください。

  • Culture
    ページのカルチャ設定を示します。 この属性の値は、有効なカルチャ ID とする必要があります。 LCID 属性と Culture 属性は相互に排他的で、これらの属性のいずれかを使用する場合、同じページでは他の属性を使用できない点に注意してください。 詳細については、Culture プロパティおよび CultureInfo クラスのトピックを参照してください。

  • Debug
    ページをコンパイルするときにデバッグ シンボルを使用するかどうかを示します。 デバッグ シンボルを使用してページをコンパイルする場合は true、それ以外の場合は false を指定します。 この設定はパフォーマンスに影響を与えるため、開発中のみ属性を true に設定してください。

  • Description
    ページのテキスト説明を指定します。 ASP.NET パーサーでは、この値は無視されます。

  • EnableEventValidation
    ポストバックおよびコールバックの状況でイベントの検証を有効にします。 イベントを検証する場合は true、それ以外の場合は false を指定します。 既定値は、true です。

    ページ イベントの検証によって、未認証のポストバック要求やコールバックのリスクが軽減されます。 enableEventValidation プロパティを true に設定すると、ポストバック要求中またはコールバック中にのみ、コントロールでイベントを発生させることができます。 このモデルを使用すると、コントロールはレンダリング中にイベントを登録し、ポストバックまたはコールバックの処理中にイベントを検証します。 ASP.NET のすべてのイベント ドリブン コントロールは、既定でこの機能を使用します。

    イベント検証は無効にしないことを強くお勧めします。 イベント検証を無効にする場合は、その前に、アプリケーションに意図しない影響を与える可能性があるポストバックが一切発生しないことを確認しておく必要があります。

  • EnableSessionState
    ページのセッション状態要件を定義します。 セッション状態を有効にする場合は true、セッション状態の読み取りを可能にし、変更を禁止する場合は ReadOnly、それ以外の場合は false を指定します。 既定値は、true です。 これらの値では、大文字と小文字は区別されません。 詳細については、「ASP.NET セッション状態の概要」を参照してください。

  • EnableTheming
    ページでテーマを使用するかどうかを指定します。 テーマが使用される場合は true、それ以外の場合は false を指定します。 既定値は、true です。

  • EnableViewState
    ビューステートがページ要求間で維持されるかどうかを指定します。 ビューステートを維持する場合は true、それ以外の場合は false です。 既定値は、true です。

    このプロパティが true に設定されている場合でも、次の条件のいずれかに該当する場合は、ビューステートはコントロールで維持されません。

    • コントロールの EnableViewState プロパティが false に設定されている。

    • コントロールの ViewStateMode プロパティが Disabled に設定されているか、コントロールが Disabled の値を継承している。

    ビューステートとコントロールの状態の詳細については、Control.EnableViewState プロパティのトピックを参照してください。

  • EnableViewStateMac
    ページがクライアントからポスト バックされたときに、ASP.NET がページのビューステートでメッセージ認証コード (MAC) を実行する必要があることを示します。 ビューステートに対して MAC によるチェックを実行する場合は true、それ以外の場合は false を指定します。 既定値は、true です。

    ビューステートに対する MAC は、ブラウザーへの送信時にページのビューステートが保持される暗号化された隠し変数です。 ビューステートがクライアントで改ざんされていないことを確認するために、MAC が使用されます。

    セキュリティに関するメモセキュリティに関するメモ

    実際に運用する Web サイトでは、この属性を false に設定しないでください。

  • ErrorPage
    処理されないページ例外が発生したときのリダイレクト先の URL を定義します。 詳細については、ErrorPage プロパティのトピックを参照してください。

  • Explicit
    Visual Basic の Option Explicit モードを使用してページをコンパイルするかどうかを示します。 Visual Basic の Explicit コンパイル オプションを有効にして、すべての変数を Dim、Private、Public、ReDim のいずれかのステートメントを使用して宣言する必要があることを示す場合は true、それ以外の場合は false を指定します。 既定値は、false です。

    メモメモ

    この属性は、Visual Basic 以外の言語では無視されます。また、このオプションは、Machine.config 構成ファイルで true に設定されます。詳細については、「ASP.NET 構成ファイル」を参照してください。

  • Inherits
    継承するページの分離コード クラスを定義します。 このクラスには、Page クラスから派生した任意のクラスを指定できます。 この属性は、分離コード クラスのソース ファイルへのパスを格納する CodeFile 属性と組み合わせて使用します。 ページ言語に C# を使用する場合、Inherits 属性は大文字と小文字が区別されます。ページ言語に Visual Basic を使用する場合は大文字と小文字が区別されません。

    Inherits 属性に名前空間が含まれない場合、ClassName 属性に名前空間が含まれるかどうかが ASP.NET で確認されます。 含まれる場合、ClassName 属性の名前空間を使用して Inherits 属性で参照するクラスの読み込みが試行されます (これは、Inherits 属性と ClassName 属性の両方が同じ名前空間を使用するという前提です)。

    分離コード クラスの詳細については、「ASP.NET Web ページのコード モデル」を参照してください。

  • Language
    ページ内のすべてのインライン表示ブロック (<% %> および <%= %>) とコード宣言ブロックをコンパイルするときに使用する言語を指定します。 値には、Visual Basic、C#、JScript を含む、.NET Framework でサポートされるすべての言語を指定できます。 各ページに、1 つの言語だけ使用および指定できます。

  • LCID
    Web フォーム ページのロケール識別子を定義します。

    メモメモ

    ロケール識別子は、ロケールを一意に定義する 32 ビットの値です。ASP.NET では、この属性を使って Web フォーム ページに別のロケールを指定しない限り、Web サーバーの既定のロケールを使用します。LCID 属性と Culture 属性は相互に排他的で、これらの属性のいずれかを使用する場合、同じページでは他の属性を使用できない点に注意してください。ロケールの詳細については、MSDN ライブラリを検索してください。

  • LinePragmas
    ランタイムがソース コード内に行プラグマを生成するかどうかを指定します。 デバッグ ツールで頻繁に使用されるコンパイラ オプションで、ソース ファイルの特定の場所をマークするために使用されます。 行プラグマを生成する場合は true、それ以外の場合は false を指定します。

  • MaintainScrollPositionOnPostback
    ポストバックの後、ユーザーをクライアント ブラウザーの同じ位置に戻すかどうかを示します。 ユーザーを同じ位置に戻す場合は true、それ以外の場合は false を指定します。 既定値は、false です。

    メモメモ

    開発者は、Web.config ファイルの <pages> 要素で maintainScrollPostitionOnPostback 属性を設定することにより (構成ファイルでは大文字と小文字が区別される点に注意してください)、すべてのページにこの属性を定義できます。

  • MasterPageFile
    パスをコンテンツ ページのマスター ページ、または入れ子になったマスター ページに設定します。 相対パスと絶対パスがサポートされます。 詳細については、MasterPageFile プロパティのトピックを参照してください。

  • MetaDescription
    MetaDescription プロパティを設定します。 ページのマークアップに "description" meta 要素も含まれる場合は、@ Page ディレクティブの値がマークアップの値をオーバーライドします。

  • MetaKeywords
    MetaKeywords プロパティを設定します。 ページのマークアップに "keywords" meta 要素も含まれる場合は、@ Page ディレクティブの値がマークアップの値をオーバーライドします。

  • ResponseEncoding
    ページの内容が含まれる HTTP 応答に使用されるエンコーディング方式の名前を示します。 この属性に割り当てられる値は、有効なエンコーディング名です。 使用可能なエンコーディング名の一覧については、Encoding クラスのトピックを参照してください。 さらに、GetEncodings メソッドを呼び出して、使用可能なエンコーディング名およびエンコーディング ID の一覧を取得することもできます。

  • SmartNavigation
    ページが Internet Explorer 5.5 以降のバージョンのスマート ナビゲーション機能をサポートするかどうかを示します。 スマート ナビゲーションが有効な場合は true、それ以外の場合は false を指定します。 既定値は、false です。

    ASP.NET Version 2.0 以降では、SmartNavigation プロパティは互換性のために残されています。 代わりに SetFocus メソッドと MaintainScrollPositionOnPostback() プロパティを使用してください。

  • 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 以外の言語では無視されます。

  • StyleSheetTheme
    ページで使用する有効なテーマ識別子を指定します。 StyleSheetTheme 属性が設定されると、個々のコントロールにより、テーマに含まれるスタイル設定がオーバーライドされる場合があります。 したがって、テーマではサイトの全体的な外観を決定できますが、StyleSheetTheme 属性に含まれる設定ではページの特定の設定とその個々のコントロールをカスタマイズできます。

  • TargetSchema
    ページの内容を検証するスキーマの名前を指定します。 この属性は説明専用で、検証は実際には実行されず、パーサーによって無視されます。

  • Theme
    ページで使用する有効なテーマ識別子を指定します。 StyleSheetTheme 属性を使用せずに Theme 属性を設定すると、コントロール上の個々のスタイル設定がオーバーライドされ、ページ上で統一化された一貫性のある外観を作成できるようになります。 詳細については、Theme プロパティのトピックを参照してください。

  • Title
    応答の HTML <title> タグ内で表示されるページのタイトルを指定します。 タイトルには、ページのプロパティとしてプログラムによりアクセスすることもできます。 詳細については、Title プロパティを参照してください。

  • Trace
    トレースが有効かどうかを示します。 トレースが有効な場合は true、それ以外の場合は false を指定します。 既定値は、false です。 詳細については、「ASP.NET トレースの概要」および Trace プロパティのトピックを参照してください。

  • TraceMode
    トレースが有効なときに、ページにトレース メッセージを表示する方法を示します。 使用可能な値は SortByTime と SortByCategory です。 トレースが有効なときの既定値は SortByTime です。 トレースの詳細については、「ASP.NET トレースの概要」を参照してください。

  • Transaction
    ページで COM+ トランザクションをサポートするかどうかを示します。 使用可能な値は、Disabled、NotSupported、Supported、Required、および RequiresNew です。 既定値は、Disabled です。

  • UICulture
    ページで使用するユーザー インターフェイス (UI) カルチャ設定を指定します。 任意の有効な UI カルチャ値をサポートします。 詳細については、UICulture プロパティのトピックを参照してください。

  • ValidateRequest
    要求の検証を行うかどうかを示します。 true の場合、要求の検証では、危険性のある値のリストと照合して、すべての入力データをチェックします。 一致するものがあった場合は、HttpRequestValidationException 例外がスローされます。 既定値は、true です。

    この機能は、マシン構成ファイル (Machine.config) で有効にします。 この機能を無効にするには、アプリケーションの構成ファイル (Web.config) またはページで、この属性を false に設定します。

    メモメモ

    この機能を使用すると、単純なページや ASP.NET アプリケーションに対するクロスサイト スクリプト攻撃のリスクを軽減できます。ユーザー入力を正しく検証できないアプリケーションは、クロスサイト スクリプティング攻撃や Microsoft SQL Server への注入攻撃など、多くの種類の不正な入力攻撃を受ける可能性があります。アプリケーション内のすべての入力フォームを慎重に評価し、検証またはコーディングが適切であることを確認したり、データを操作する前やクライアントに情報を返す前にアプリケーションが退避していることを確認したりすることが重要です。

  • ViewStateEncryptionMode
    ビュー ステートを暗号化する方法を決定します。3 つの使用可能な列挙値 Auto、Always、または Never を使用します。 既定値は Auto です。これは、個々のコントロールがビュー ステートを要求した場合に、ビュー ステートが暗号化されることを意味します。 詳細については、ViewStateEncryptionMode 列挙体の解説を参照してください。

  • ViewStateMode
    コントロールの ViewStateMode プロパティが Inherit のときに、そのコントロールに対して有効になる ViewStateMode プロパティ値を指定します。 ページの既定の ViewStateMode 値は、Enabled です。

    ViewStateMode プロパティと EnableViewState プロパティは、ビューステートがページのコントロールに対して維持されるかどうかを指定します。 詳細については、EnableViewState プロパティと ViewStateMode プロパティのトピックを参照してください。

  • WarningLevel
    コンパイラが警告をエラーとして扱ってページのコンパイルを中止する、コンパイラの警告レベルを示します。 使用可能な警告レベルは 0 ~ 4 です。 詳細については、WarningLevel プロパティのトピックを参照してください。

解説

このディレクティブは、Web フォーム ページだけで使用できます。 1 つの .aspx ファイルには、@ Page ディレクティブを 1 つだけ含むことができます。 さらに、1 つのページでは 1 つの言語だけを使用できるため、1 つの @ Page ディレクティブには Language 属性を 1 つだけ定義できます。 共通して使用されるほとんどの既定値は、ソース コードまたは構成ファイルのいずれかにある属性の大部分に対して用意されているため、多くの場合属性の大きいセットをディレクティブに追加する必要はありません。 通常は、ページに配置する機能を指定するために必要な属性の最小セットを追加してください。 すべてのページに適用する共通属性がある場合 (たとえば、すべてのページでトレースを有効にする場合など)、個々のすべてのページに Trace 属性を追加するのではなく、Web.config ファイルで機能を有効にすることを検討してください。

メモメモ

@ Page ディレクティブには、@ Control ディレクティブ (Web ユーザー コントロールの .ascx ファイルで使用) や @ Master ディレクティブ (マスター ページの .master ファイルで使用) など、ソース ファイル全体に適用する他のディレクティブと共通する多数の属性があります。

@ Page ディレクティブに複数の属性を定義するには、属性と値の各ペアを単一のスペースで区切ります。 特定の属性を定義する場合は、属性とその値をつなげる等号 (=) のどちら側にもスペースを配置しないでください。 例については、このトピックの「使用例」を参照してください。

スマート ナビゲーションは、Internet Explorer 5.5 以降のバージョンのブラウザーでサポートされる ASP.NET の機能です。 スマート ナビゲーションを使用すると、ナビゲーション間のスクロール位置と要素のフォーカスを維持したままでページを更新できます。その結果、ブラウザーの履歴には 1 つのページだけが保存され、Web ページの更新時に発生しやすいちらつきも防止できます。 スマート ナビゲーションは、ポストバックを頻繁に要求する ASP.NET ページにおいて、ビジュアル コンテンツが大幅に変更されることはない場合に特に役立ちます。 この属性を true に設定するかどうかを決定するときには、以上のことを慎重に検討してください。

ページの AspCompat 属性が true に設定されている場合は、要求がスケジュールされる前に、COM コンポーネントを作成するコンストラクターを使用すると、マルチスレッド アパートメント (MTA) スレッド上で実行されます。 この結果、Web サーバーのパフォーマンスが大幅に低下します。 この問題を避けるには、Page クラスのいずれかのイベント (たとえば、Page、Page_Load など) または Page_Init クラスのメソッドの内部だけで COM コンポーネントを作成します。 また、ページ作成時にオブジェクトが作成されないように注意してください。

AspCompat を有効にしてページ内で COM オブジェクトのインスタンスを作成する推奨方法を次のコード例に示します。

<%@ Page AspCompat="true" language="C#" %>
<script runat="server" >

MyComObject comObj;

public void Page_Load(){
   // Use comObj here when the code is running on the STA thread pool.
   comObj = New MyComObject();
   // Do something with the combObj object.
}
<%@ Page AspCompat="true" language="VB" %>
<script runat="server" >

    Dim comObj As MyComObject 

    Public Sub Page_Load()
     'Use comObj here when the code is running on the STA thread pool.
     comObj = New MyComObject()
     ' Do something with the combObj object.
    End Sub
</script>
メモメモ

@ Master ディレクティブをマスター ページに追加しても、マスターに依存するページで同じディレクティブ宣言を使用することはできません。代わりに、pages 要素を使用して、ページ ディレクティブをグローバルに定義します。

使用例

ASP.NET ページ コンパイラに対して、ページのサーバー側コード言語として Visual Basic を使用し、クライアントに送信する既定の HTTP MIME ContentType を "text/xml" に設定するように指示するコード例を次に示します。

<%@ Page Language="VB" ContentType="text/xml" %>

参照

参照

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

@ Control

@ Master

その他の技術情報

ASP.NET ページの構文