.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 することを示します。 式プレフィックスは、 などのAppSettings
ConnectionStrings
式の種類をResources
定義します。 さらに、独自の式ビルダーを作成して定義することもできます。 コロン (:) に続く式の値は、特定のプロパティの値として実際に使用 ASP.NET です。
次のデモでは、式ビルダーを使用して、Web.config ファイル内のノードから AppSettings
Web サイトの著作権を取得する方法と、著作権情報を Literal の Text プロパティの値として設定する方法を示します。
AppSettings
Web.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>
サーバー側のコメントの詳細については、「 サーバー側のコメント」を参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示