web-dev-qa-db-ja.com

ASP.NETの「特別な」タグ

次のような「特別な」ASP.NETタグの正式名は何ですか:

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

これらの概念的な名前またはよく知られた名前を理解することができないため、詳細を探すのに苦労しています。ボーナスとして、可能性のあるすべての「特別なタグ」とそれらのそれぞれが何をするか(またはリソースを指す)の簡単な概要を誰にでも教えてもらえますか?

215
Andy White

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

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

Code Declaration Block もあります。これは、最終的な埋め込みコードブロックフォームです。

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

これは、ASP.NETマークアップから生成されたクラスに追加のメンバー(メソッドなど)を含めるために使用されます。これらはこれまでに提供されただけです "主に古いASPテクノロジーとの後方互換性を保つために" 使用は推奨されていません。

328
Sedat Kapanoglu

名前の質問に対する答えはありませんが、MSDN "ASP.NETページ構文" ページは非常に優れています(または、それがトップレベルのページです。その下のページが詳細情報を提供します)。

編集:私は以前に<%# ... %>がリストに含まれていないと思っていましたが、もちろん、それはData-Binding Expressionsの下にあります。ど.

7
Jon Skeet

サーバー側の構文に疑問がある場合は、常に このクイックスタートページ が非常に役立つことがわかっています。 8つの異なるマークアップスタイルの詳細を示し、それぞれの長所と短所の説明に加えて、それぞれの具体例を示します。

ただし、ページレベルのディレクティブについては言及していません。IIRCについては、クイックスタートのどこかで詳しく説明しています。

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

6
Cerebrus

Microsoftの連中は、それらを「ナゲット」または「コードナゲット」と呼ぶことがあります。

6
Matth

StackOverflow Podcastを含む「V stings」と呼ばれるものも聞いたことがあります。

0
Chris Moschini