2011-11-20 8 views
15

....NET "コードナゲットブロック"?まさにこれらは私たちが持っている.NETでそう

<%= 

<%: (new to .NET 4 - syntactic sugar for HTML encoding) 

<%# 

<%@ 

さらにありますか?これらの網羅的なリストはどこにありますか?何を検索するのかを知ることは難しいです。私は今夜、 "コードナゲットのブロック"という言葉を聞いたこともありませんでした。私は<%が何であるかを発見しました。

答えて

9

これらは<%@です。網羅的なリストとドキュメントについては、MSDNを参照してください。

使用すると、ディレクティブは.aspxの中でどこにでも置くことができるか、標準的な方法は、 ファイルの先頭にそれらを含めることですが、 ファイルをた.ascx。各ディレクティブには、そのディレクティブに固有の1つ以上の属性(値を持つ のペア)を含めることができます。

<%はスクリプトブロックです。ここでMSDN

埋め込まれたコードブロックの適切な説明は、ページの は、レンダリングフェーズの間に実行するサーバコードされています。ブロック内のコードは、現在のページクラスでプログラミング ステートメントと関数を呼び出すことができます。

<%#ブロックは、通常、結合コントロールで使用されます。詳細はarticleを参照してください。

2

これらのWebFormタグにすべて適切な集団名が付いているかどうかはわかりませんが、それらはすべてASP.NET Page Syntaxでカバーする必要があります。

、リストにASP.NET Expressionsないという別があります:

<%$ expressionPrefix: expressionValue %> 
8

彼らは、コードナゲットと呼ばれています。これらのシンボル(< %%>)内のステートメントを処理する方法については、ASP.NETフレームワークの指示を提供しています。私がその名前を知るまでは、コミュニティでそれを聞くのはちょっと難しかったです。 「徹底的な」リストは不明ですが、あなたが指定した以上の数があります。以下は、他のコードナゲットのリストとその使い方、およびサンプルの例です。

記号 - 名 - 説明 - 例えば(フォーマット)


<% --Standardコードナゲットは - 次の文は、C#のステートメントであることを示します。 C#の構文規則に従う必要があります。例えば。

<% string[] cities = { ""London"", ""New York"", ""Paris"" }; 
string myCity = cities[new Random().Next(cities.Length)]; 
Response.Write(myCity);%> 

<%= --contentコードナゲット - 標準CNと同様に、差分返された結果であることを直接Response.Writeを使用することなく、ブラウザに応答内に挿入されます。例えば。

<%=textBox.Text%> 

(推奨されていません.htmlインジェクション攻撃の危険性があります。テキストボックスの入力が "< button type = submit > Submit</button >"のようなものであれば、ページにボタンを追加します。もちろん、そこに検証することが、ポイントがクリアされている願っています。)


<%: <% =に--Similar --Encodedコードナゲットが、応答がHTMLエンコードされます。例えば。 Name is <%:textBox.Text%> (入力がテキストボックスの上にあるものは何でも、表示されます。入力が「< button type = submit > Submit</button >」のようなものである場合、出力は「名前が<button type = submit> Submit</button>ある」だろう。


<%# --data結合コードナゲット - 現在のデータオブジェクトを参照するために使用されるデータバインディングコードナゲットを示します。リピータなどのデータバインドコントロールでのみ使用可能です。

<%#: - エンコードされたデータバインディングコードナゲットデータバインドされた値がエンコードされます。たとえば、

<asp:Repeater ItemType = ""System.String"" SelectMethod = ""GetCities"" runat = ""server"> 
<ItemTemplate> 
<li > <%# Item % > </li> 
</ItemTemplate> 
</asp:Repeater> 

(符号化された場合(<%#:)が使用され、それは推奨、解釈せずにリテラルを表示します。)」


<%$ --propertyコードナゲット - 設定値を参照するために使用され、そのような定義されたものとWeb.configで。

<asp:Literal Text = " < %$ AppSettings: cityMessage % > " runat = "server" /> 

(設定ファイルからcityMessageキーの値を取得します。)


<%@ --pageディレクティブ - これは依存し、Webフォーム(またはコントロールまたはマスターページを設定するために使用されますディレクティブの種類。例えば。

<%@ Page.. <%@ Master 

上記すべての情報と電子を述べましたサンプルは、Adam FreemanのPro ASP .NET 4.5の第12章の優れた本です。

関連する問題