次の方法で共有


.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>

埋め込みコード ブロックは常にハイパーテキスト マークアップ言語 (HTML) ソースと混在しているため、開発者が読んで維持するのは困難です。

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

<%= ... %> 式を表示しています

式を表示する <%= ... %> は、 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 ASP.NET IHttpHandler ページを識別します。
@ PreviousPageType PreviousPage プロパティを介してアクセスされた前のページに対して厳密な型指定を取得する方法を提供します。
@ MasterType ASP.NET ページの Master プロパティにクラス名を割り当てます。 ASP.NET マスター ページへの厳密に型指定された参照を作成する方法を提供します。
@ OutputCache ページまたはユーザー コントロールの出力キャッシュ ポリシーを宣言によって制御します。
@ Reference ページまたはユーザー コントロールを現在のページまたはユーザー コントロールに宣言によってリンクします。

ディレクティブ構文の詳細については、「 Text Template ディレクティブ構文」を参照してください。

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

データ バインディング式は、このサーバー コントロールのコントロールの 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>

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

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

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

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

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

AppSettings ファイル内の ノード:

<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 式の概要」を参照してください。

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

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

次のコード例は、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>

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