@ Page

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

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

属性

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

    既定値は false です。

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

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

  • 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
    ページが要求されたときに動的に自動コンパイルされるページのクラス名を指定する文字列。値としては、任意の有効なクラス名を指定できます。クラスの完全名前空間 (完全修飾クラス名) を使用できます。この属性の値が指定されない場合、コンパイルされたページのクラス名はページのファイル名に基づきます。

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

  • ClientTarget
    ASP.NET サーバー コントロールがコンテンツを表示する対象のユーザー エージェント (通常は Microsoft Internet Explorer などの Web ブラウザ) を示します。この値は、アプリケーションの構成ファイルの <clientTarget> セクション内で定義されている有効な任意のエイリアスにできます。
  • CodeBehind
    ページに関連付けられているクラスを含むコンパイル済みのファイルの名前を指定します。この属性は実行時には使用されません。

    注意

    この属性は、以前のバージョンの ASP.NET との互換性を保持して、分離コード機能を実装するために用意されています。ASP.NET Version 2.0 では、代わりに CodeFile 属性を使用してソース ファイルの名前を指定すると同時に、Inherits 属性を使用してクラスの完全修飾名を指定します。

  • CodeFile
    ページの参照される分離コード ファイルのパスを指定します。この属性は、Inherits 属性と共に使用され、分離コード ソース ファイルを 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 属性は相互に排他的で、これらの属性のいずれかを使用する場合、同じページでは他の属性を使用できない点に注意してください。使用可能なカルチャ値の詳細については、CultureInfo クラスを参照してください。
  • Debug
    ページをコンパイルするときにデバッグ シンボルを使うかどうかを示します。デバッグ シンボルを使ってページをコンパイルする場合は true、それ以外の場合は false を指定します。この設定はパフォーマンスに影響を与えるため、開発中のみ属性を true に設定してください。
  • Description
    ページのテキスト説明を指定します。ASP.NET パーサーでは、この値は無視されます。
  • EnableEventValidation
    ポストバックおよびコールバックの状況でイベントの検証を有効にします。イベントを検証する場合は true、検証しない場合は false を指定します。既定値は true です。
  • EnableSessionState
    ページのセッション状態要件を定義します。セッション状態を有効にする場合は true、セッション状態の読み取りを可能にし、変更を禁止する場合は ReadOnly、それ以外の場合は false を指定します。既定値は true です。これらの値では、大文字と小文字は区別されません。詳細については、「ASP.NET のセッション状態」を参照してください。
  • EnableTheming
    ページでテーマを使用するかどうかを示します。テーマを使用する場合は true、使用しない場合は false を指定します。既定値は true です。
  • EnableViewState
    一連のページ要求にまたがってビューステートを維持するかどうかを示します。ビューステートを維持する場合は true、それ以外の場合は false を指定します。既定値は true です。
  • EnableViewStateMac
    ページがクライアント側からポストバックされたときに、ASP.NET がページのビューステートに対してコンピュータ認証チェック (MAC) を実行するかどうかを示します。ビューステートに対して MAC によるチェックを実行する場合は true、それ以外の場合は false を指定します。既定値は false です。

    注意

    ビューステートに対する MAC は、ブラウザへの送信時にページのビューステートが保持される暗号化された隠し変数です。この属性を true に設定すると、暗号化されたビューステートは、クライアントで改ざんされていないかどうかを検証するために確認されます。ページのラウンド トリップのたびに変数値を復号化して暗号化する必要があるため、この属性を true に設定するとパフォーマンスに影響が及ぶ点に注意してください。

  • ErrorPage
    処理されないページ例外が発生したときのリダイレクト先の URL を定義します。
  • Explicit
    ページをコンパイルするときに、Visual Basic の Option Explicit モードを使用するかどうかを示します。Visual Basic の Explicit コンパイル オプションを有効にして、すべての変数を DimPrivatePublic、または ReDim のいずれかのステートメントを使用して宣言する必要があることを示す場合は true を指定します。それ以外の場合は false を指定します。既定値は false です。

    注意

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

  • Inherits
    継承するページの分離コード クラスを定義します。このクラスには、Page クラスから派生した任意のクラスを指定できます。分離コード クラスのソース ファイルのパスが含まれる CodeFile 属性と共に使用します。分離コード クラスの詳細については、「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
    パスをコンテンツ ページのマスタ ページ、または入れ子になったマスタ ページに設定します。相対パスと絶対パスがサポートされます。
  • ResponseEncoding
    ページの内容が含まれる HTTP 応答に使用されるエンコーディング方式の名前を示します。この属性に割り当てられる値は、有効なエンコーディング名です。使用可能なエンコーディング名の一覧については、Encoding クラスを参照してください。さらに、GetEncodings メソッドを呼び出して、使用可能なエンコーディング名およびエンコーディング ID の一覧を取得することもできます。
  • SmartNavigation
    ページが Internet Explorer 5.5 以降のバージョンのスマート ナビゲーション機能をサポートするかどうかを示します。スマート ナビゲーションを有効にする場合は true、有効にしない場合は false を指定します。既定値は false です。

    コード内でページに SmartNavigation プロパティを設定することもできますが、通常は @ Page ディレクティブがある属性を使用して設定してください。この機能により、Web ページを移動する際のユーザーの操作性を向上させる方法の詳細については、SmartNavigation プロパティを参照してください。

  • 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 属性を設定すると、コントロール上の個々のスタイル設定がオーバーライドされ、ページ上で統一化された一貫性のある外観を作成できるようになります。
  • Title
    応答の HTML <title> タグ内で表示されるページのタイトルを指定します。タイトルには、ページのプロパティとしてプログラムによりアクセスすることもできます。詳細については、Title プロパティを参照してください。
  • Trace
    トレースを有効にするかどうかを示します。トレースを有効にする場合は true、有効にしない場合は false を指定します。既定値は false です。詳細については、「ASP.NET のトレース」を参照してください。
  • TraceMode
    トレースが有効なときに、ページにトレース メッセージを表示する方法を示します。使用可能な値は SortByTimeSortByCategory です。トレースが有効なときの既定値は SortByTime です。トレースの詳細については、「ASP.NET のトレース」を参照してください。
  • Transaction
    ページでトランザクションをサポートするかどうかを示します。使用可能な値は、DisabledNotSupportedSupportedRequired、および RequiresNew です。既定値は Disabled です。
  • UICulture
    ページで使用するユーザー インターフェイス (UI) カルチャ設定を指定します。任意の有効な UI カルチャ値をサポートします。
  • ValidateRequest
    要求の検証を行うかどうかを示します。true の場合、要求の検証では、危険性のある値のリストと照合して、すべての入力データをチェックします。一致するものがあった場合は、HttpRequestValidationException 例外がスローされます。既定値は true です。

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

    注意

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

  • ViewStateEncryptionMode
    ビュー ステートを暗号化する方法を決定します。3 つの使用可能な列挙値 AutoAlways、または Never を使用します。既定値は Auto です。これは、個々のコントロールがビュー ステートを要求した場合に、ビュー ステートが暗号化されることを意味します。詳細については、ViewStateEncryptionMode 列挙値を参照してください。
  • 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 クラスのいずれかのイベント (たとえば、PagePage_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 ページの構文