ASP.NETの「特別な」タグ


232

このような「特別な」ASP.NETタグの公式名は次のとおりです。

<%# %>
<%= %>
<%@ %>
<%$ %>

これらの概念的な名前やよく知られている名前がわからないようです。そのため、詳細情報を検索できません。おまけとして、誰もが私に可能なすべての「特別なタグ」の簡単な概要とそれらのそれぞれが何をするのか(または私をリソースにポイントすること)を与えることができますか?


1
Microsoft は、コードが含まれている場合、それらを埋め込みコードブロックとも呼びます。
Robert Harvey

回答:


350

正式名称は「サーバー側スクリプト区切り文字」または「ASP.NETインライン式」です。Visual Studio 2008の構文強調表示設定ダイアログでは、これらを「HTMLサーバー側スクリプト」と呼んでいます。マイクロソフトの連中は、ブログで「コードナゲット」と呼んでいる。

  • <%@ %>あるASP.NET Webページのディレクティブ。ページとコントロールに使用して、ページ/コントロールのコンパイラ設定を構成します(<%@ Control Inherits="MyParentControl" %>)。
    • <%@ %>アプリケーションディレクティブでもあります。global.asaxのアプリケーション固有の設定を指定するために使用されます。異なるタグセットのみを使用するため、ページディレクティブとは異なります。
  • <% %>あるコードブロック(インラインコード用)をレンダリング埋め込みコードブロックの4つの形式の1つ。生成されたクラスのRender()メソッド<% x = x + 1; %>)にサーバー側コードを含めるために使用されます。形式:単一/複数行または複数リンク(例:if/then/elsehtmlが混在)ですが、関数の宣言には使用できません。
  • <%= %>あるコード(インライン式の)ブロックをレンダリング。の省略形として使用<%Response.Write(value)%>
  • <%: %>(非公式には「Html Encoding Code Block」)は前と同じですが、出力はHTMLエンコードされます。
  • <%# %>あるデータバインディング式。一方向(読み取り専用)または双方向(更新)を介して結合するために使用されるEvalXpathBind、または式(ドロップダウンコントロールの例えば選択した値)。コントロールの属性マークアップを介して、またはプロパティのDataBoundLiteralControl値を持つインスタンスを生成する個別のタグとして、式をデータバインドコントロールプロパティにバインドしTextます。式はDataBinding、コントロールのイベントハンドラーによって評価されます。
  • <%#: %>あるHTMLエンコードされたデータバインディング式(ASP.NET 4.5の新機能)。それはの機能性を兼ね備え<%# %><%: %>
  • <%$ %>あるASP.NETの式ビルダーは、。サーバータグ属性を介してコントロールプロパティのランタイム式バインディングに使用されます。で使用AppSettingsConnectionStringsまたはResources(または、独自のカスタム拡張、例えばプロパティコードビハインドを使用します)。これらの割り当てはOnInit()、生成されたクラスのメソッドに追加されます。
  • <%-- --%>あるサーバー側のコメント。コンパイルからコンテンツを除外するために使用されます(そのため、コメント化されたコントロールが分離コードで参照されると、エラーが発生します)。HTMLコメントとは異なり、コンテンツは出力に含まれません
  • <!-- #Include ... -->されるサーバー側は、指令を含めます。ファイルのコンテンツをページ、コントロール、またはグローバルファイルに挿入するために使用されます。ユーザーコントロールがやりすぎで、マスターページを使用できない場合に便利です。

コード宣言ブロックもあります、最終的な埋め込みコードブロックフォームでます。

<script runat="server">
bool IsTrue() {
  return false;
}
</script>

これは、ASP.NETマークアップから生成されたクラスに追加のメンバー(メソッドなど)を含めるために使用されます。これらは「主に古いASPテクノロジとの下位互換性を維持するために」提供されたものであり、使用は推奨されていません。


1
appsettings / connection文字列に対してデータバインドする<%$ ...%>があると思います。
2009年

聞いたことがありません。ソースはありますか?
セダットカパノグル2009年

3
それらはASP.NET式と呼ばれます。msdn.microsoft.com/en-us/library/d5bd1tad.aspxを
elo80ka 2009年

7

名前の質問に対する回答はありませんが、MSDNの「ASP.NETページの構文」ページは非常に優れています(または、それがトップレベルのページです。その下のページに詳細が記載されています)。

編集:私は以前<%# ... %>、それがリストに含まれていないと思っていましたが、もちろん、それはデータバインディング式の下にあります。どー。


このリンクは現在機能しません。選択する前に、.NET Frameworkのバージョンを選択する必要があります。
Sam

1
@サム:ああ、ありがとう-何らかの理由で.NET 4.5がリリースされたときに廃止されたと思います。リンクを編集しました。
Jon Skeet 2013年

1
Jon SkeetはWeb開発をしていないと思いました...!
CodeArtist 2014年

6

私はいつもこのクイックスタートページを見つけましたサーバー側の構文に疑問がある場合はいつでも、が非常に役立つことが。8つの異なるマークアップスタイルについて詳しく説明し、それぞれの例示的な例と、賛否両論について説明します。

ただし、IIRCについてはクイックスタートの他の場所で詳しく説明されているページレベルディレクティブについては触れられていません。

もちろん、これはASP.NET 2.0に関連しています。


これはリンクのみの回答です。関連情報をインライン化してください。
zzzzBov 2015

1
リンクが古くなっています:-(
Roland


6

マイクロソフトの連中は、それらを「ナゲット」または「コードナゲット」と呼ぶこともあります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.