.NET Frameworkでインライン式を ASP.NET する

この記事では、次の ASP.NET インライン式の概要について説明します。

  • <% ... %>
  • <%= ... %>
  • <%@ ... %>
  • <%# ... %>
  • <%$ ... %>
  • <%-- ... --%>

元の製品バージョン: .NET Framework
元の KB 番号: 976112

<% ... %> 埋め込みコード ブロック

埋め込みコード ブロックは、従来の ASP との下位互換性を維持するために使用されます。 ブロック内のコードは、ページ レンダリング フェーズ中に、現在のページ クラスでプログラミング ステートメントを実行し、関数を呼び出すことができます。

次の例は、ループの結果を表示する埋め込みコード ブロックにサンプル Microsoft Visual Basic .NET コードがある ASP.NET ページを示しています。

<%@ Page Language="VB" %>
<html>
<body>
    <form id="form1" runat="server">
        <% For i As Integer = 16 To 24 Step 2%>
            <div style="font-size: <% Response.Write(i)%>">
                Hello World<br />
            </div>
        <% Next%>
    </form>
</body>
</html>

埋め込みコード ブロックは常に HyperText Markup Language (HTML) ソースと混在しているため、開発者が読み取って維持するのは困難です。

ASP.NET Web ページの埋め込みコード ブロックの詳細については、「ASP.NET Web Forms ページの埋め込みコード ブロック」を参照してください。

<%= ... %> displaying 式

<%= ... %>表示式は、 ステートメントのみをResponse.Write(...)含む埋め込みコード ブロックと同等です。 単一の文字列、int 変数、定数などの情報を表示する最も簡単な方法です。

たとえば、次のサンプル コードは現在の時刻を表示します。

<%@ Page Language="VB" %>
<html>
    <body>
        <form id="form1" runat="server">
            <%=DateTime.Now.ToString() %>
        </form>
    </body>
</html>

表示式は、サーバー コントロールの属性では使用できないことに注意してください。 これは、.NET Frameworkが属性の値としてコンテンツを表示するのではなく、式全体を直接コンパイルするためです。

ASP.NET からの情報を表示する方法の詳細については、「ASP.NET から表示する」を参照してください。

<%@ ... %> ディレクティブ式

ディレクティブ式は、Web フォーム (.aspx) ページとユーザー コントロール (.ascx) ファイル ASP.NET 処理するときに、ページおよびユーザー コントロール コンパイラによって使用される設定を指定する構文です。

ASP.NET ページ フレームワークでは、次のディレクティブがサポートされています。

ディレクティブ 説明
@ Page ASP.NET ページ パーサーとコンパイラによって使用されるページ固有の属性を定義します。 .aspx ファイルにのみ含めることができます。
このディレクティブ名は、ASP.NET Web フォーム ページでのみ使用できます。
@ Control ASP.NET ページ パーサーとコンパイラによって使用されるコントロール固有の属性を定義します。 .ascx ファイル (ユーザー コントロール) にのみ含めることができます。
ディレクティブ名は、ユーザー コントロール ファイルでのみ使用できます。
@ Import 名前空間をページまたはユーザー コントロールに明示的にインポートします。
@ Implements ページまたはユーザー コントロールが指定した.NET Framework インターフェイスを実装することを宣言的に示します。
@ Register エイリアスを名前空間とクラス名に関連付けます。 これにより、ユーザー コントロールとカスタム サーバー コントロールが、要求されたページまたはユーザー コントロールに含まれるときにレンダリングされます。
@ Assembly コンパイル中にアセンブリを現在のページにリンクします。 これにより、すべてのアセンブリのクラスとインターフェイスをページで使用できるようになります。
@ Master ASP.NET マスター ページを識別します。
@ WebHandler IHttpHandler ページ ASP.NET 識別します。
@ PreviousPageType PreviousPage プロパティからアクセスされた前のページに対して厳密な入力を取得する方法を提供します。
@ MasterType ASP.NET ページの Master プロパティにクラス名を割り当てます。 ASP.NET マスター ページへの厳密に型指定された参照を作成する方法を提供します。
@ OutputCache ページまたはユーザー コントロールの出力キャッシュ ポリシーを宣言によって制御します。
@ Reference ページまたはユーザー コントロールを現在のページまたはユーザー コントロールに宣言的にリンクします。

ディレクティブ構文の詳細については、「 テキスト テンプレート ディレクティブ構文」を参照してください。

<%# ... %> データ バインディング式

データ バインディング式は、このサーバー コントロールのコントロールの DataBind メソッドがページで呼び出されたときに、サーバー コントロール プロパティとデータ ソースの間でバインドを作成します。

次の例は、データ バインディング式を使用して、関数からラベルの Text プロパティに文字列をバインドする方法を示しています。

<%@ Page Language="VB" %>
<script runat="server">
    Protected Function SayHello() As String
        Return "Hello World"
    End Function

    Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)
        lblHello.DataBind()
    End Sub
</script>
<html>
    <body>
        <form id="form1" runat="server">
            <asp:Label ID="lblHello" runat="server" Text="<%# SayHello%>"></asp:Label>
        </form>
    </body>
</html>

データ バインディング式の構文の詳細については、「 データ バインディング式の構文」を参照してください。

<%$ ... %> 式ビルダー

式ビルダーは、アプリケーションの構成ファイルまたはリソース ファイルに含まれる情報に基づいてコントロール プロパティの値を設定するために使用されます。 次の例は、式ビルダーの基本的な構文です。
<%$ Expression Prefix: Expression Value %>

ドル記号 ($) は、次の式が式ビルダーであることを ASP.NET することを示します。 式プレフィックスは、 などのAppSettingsConnectionStrings式の種類をResources定義します。 さらに、独自の式ビルダーを作成して定義することもできます。 コロン (:) に続く式の値は、特定のプロパティの値として実際に使用 ASP.NET です。

次のデモでは、式ビルダーを使用して、Web.config ファイル内のノードから AppSettings Web サイトの著作権を取得する方法と、著作権情報を Literal の Text プロパティの値として設定する方法を示します。

AppSettingsWeb.configファイル内ノード:

<appSettings>
    <add key="copyright" value="(c) Copyright 2009 WebSiteName.com"/>
</appSettings>

ASP.NET Web フォーム ページの式ビルダー:

<div id="footer">
    <asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal>
</div>

ASP.NET 式の詳細については、「 ASP.NET 式の概要」を参照してください。

<%-- ... -- %> サーバー側コメント ブロック

サーバー側のコメント ブロックを使用すると、開発者は、(コード ブロック内 <script> を除く) ASP.NET Web フォーム ページの HTML ソースの任意の場所にコード コメントを埋め込むことができます。 サーバー側コメント ブロックの開始タグと終了タグの間のコンテンツは、サーバー上で処理されたり、結果のページにレンダリングされたりすることはありません。

次のコード例は、ASP.NET ページでサーバー側コメント ブロックを使用する方法を示しています。

<%@ Page Language="VB" %>
<script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim strName As String
        strName = Session("userName")
        lblUserName.Text = strName
    End Sub
</script>
<html>
    <body>
        <form id="form1" runat="server">
            <%-- Label for UserName --%>
            <asp:Label ID="lblUserName" runat="server" Text=""></asp:Label>
        </form>
    </body>
</html>

サーバー側のコメントの詳細については、「 サーバー側のコメント」を参照してください。