3

しばらくの間、ASP.NETWebフォームとASP.NETMVCを使用していました。

つまり<%= %>、ビューでは、MVCResponse.Write()<%: %>導入されたHTMLエスケープが追加されます。

SqlDataSourceでは、コントロールデザイナーはこのようなものを生成ConnectionString="<%$ ConnectionStrings:FooConnectionString %>"し、リピーターでは<%# Eval("") %>sytaxを使用します。

私の質問は、正確に何<%$ %>をし、<%# %>タグを付けるか、それらがどのような方法に移行し、どのように動作するかです。

4

3 に答える 3

2

<%$ %>式の構文です。

AppSettings、Resources、ConnectionStringsの組み込みショートカットがいくつかあります。自分で書くこともできます。

<%# %>データバインディング式の構文です。

これは、バインドされているオブジェクトからプロパティ値を解決するためにデータバインドされたコントロールで使用されます。

于 2011-12-01T12:59:43.450 に答える
2

<%# %>このテキストは、構文をよく説明していると思ったので、少し前に本から切り取ったものです (どの本かは思い出せません)。

従来の ASP アプリケーションに慣れている方は、<%# %> 構文が非常に見慣れていると思われるかもしれません。目的は似ていますが、2 つを混同しないように注意する必要があります。混同すると、アプリケーションが正しく機能しなくなる可能性があります。ASP (および ASP.NET) では、 <%= %> 構文により、角かっこ内にあるものはすべてレンダリング時に評価されますが、ASP.NET に固有の <%# %> 角かっこはバインド中にのみ評価されます。このセクションで後述するように、ページとページ上の各バインド可能なコントロールには DataBind() メソッドがあります。データ バインディング ブラケット (<%# %>) 内に含まれる式は、コントロールの DataBind メソッドが呼び出されたときにのみ評価されます。

それはあなたの質問の半分しか答えていませんが、Rob Stevenson-Leggett の優れた答えは他のすべてをカバーしています。これをさらに説明するために追加したいと思いました。

于 2011-12-01T13:07:47.657 に答える