27

私はASP.NETを何年も使用していますが、#と=を使用することが適切であるかどうかを思い出せません。

例えば:

<%= Grid.ClientID %>

また

<%# Eval("FullName")%>

誰かがそれぞれをいつ使用すべきかを説明して、私がそれを頭の中でまっすぐに保つことができるようにすることはできますか?#はデータバインディングをサポートするコントロールでのみ使用されますか?

4

3 に答える 3

44

いくつかの異なる「ハチ刺され」があります。

  • <%@- ページ ディレクティブ
  • <%$- リソースへのアクセス
  • <%=- ページへの明示的な出力
  • <%#- データバインディング
  • <%--- サーバーサイドコメントブロック

ASP.Net 4 の新機能:

  • <%:- ページに書き込みますが、HTML エンコードされています

ASP.Net 4.5 の新機能:

  • <%#:- HTML エンコードされたデータ バインディング
于 2008-09-22T14:39:32.453 に答える
24

<%= %> は、どこに配置しても Response.Write("") を実行するのと同じです。

<%# %> はデータ バインディング用であり、データ バインディングがサポートされている場合にのみ使用できます (コード ビハインドで Page.DataBind() を呼び出す場合は、コントロールの外側のページ レベルでこれらを使用できます)。

データバインディング式の概要

于 2008-09-22T14:37:06.030 に答える
9

これは、Dan Crevier による素晴らしいブログ投稿で、違いを示すために彼が作成したテスト アプリを紹介しています。

本質的に:

  • <%= 式はレンダリング時に評価されます
  • <%# 式は DataBind() 時に評価され、DataBind() が呼び出されない場合はまったく評価されません。
  • <%# 式は、サーバー側コントロールのプロパティとして使用できます。<%= 式は使用できません。
于 2008-09-22T14:38:10.443 に答える