<%$、<%@、<%=、<%#…どのような取引ですか?


211

クラシックASPとASP.NETの両方でプログラムを作成しましたが、サーバーサイドコードのマークアップ内に異なるタグが表示されています。

最近、MSDNの優れたブログに出会いました。

  • <%= (パーセント記号と等号)および
  • <%# (パーセント記号とハッシュ/ポンド/オクトソープ)

<%#databindでのみ<%=評価され、renderで評価されます)、しかし私はまた見ます:

  • <%$ (パーセントとドル記号)および
  • <%@ (パーセント記号とアットマーク)。

私は信じている<%@アセンブリと、おそらくのような負荷の物事<%$設定ファイルからロードする事を?よくわかりません。

誰かが私のためにこれのすべてを明確にして、おそらく同じような目的を持っていると思われる非常に多くの異なるタグを作成することが重要である理由を説明できるだろうかと思っていましたか?


72
グーグルするのは非常に難しいので、あなたが尋ねてうれしいです;)
Nicolas Dorier

8
グーグルには不可能!
jdbosley 14

<%#とともに使用されることがよくありますがeval、そうする必要はありません。それを使用して、サーバー側のコードを実行できます(Page.DataBind()含まれているページまたはそのマスターページで実行する場合)。あなたのようなサーバー側のコントロールの属性に「注入」サーバー側のコードにしたい場合には、これはあなたの唯一の選択肢であると思われる<asp:TextBox<asp:LinkButtonあるいは<input runat="server">
Gilad Barner、2015

1
@jdbosley私はググって"<%=" "<%:""<%@" "<%#"、ここに送ってくれました。
Rudey 2017

2
@RuudLenders、あなたにとって幸運で良い仕事のGoogle。2014年にこれらのタグを検索しても、質の高い結果は返されませんでした。
jdbosley 2017

回答:


296

それは受け入れられた答えだからだと思いますが、リンクを編集/ wしようとしても機能しませんでした。「<%$」式の評価について私が試したリンクは次のとおりです。msdn.microsoft.com
John MacIntyre

6
これらすべての名前はありますか?これらはグループと呼ばれますか?
Vippy 2015

9
@Vippy ハチ刺傷と呼ばれています。
Ian Boyd

1
@Lankymart私が見つけることができる最も早い使用法は2008年9月です
Ian Boyd

1
@Vippy MSはそれらを「埋め込みコードブロック」と呼んでいます。
shiggity

5

2つをカバーしました(<%#はデータバインドでのみ評価され、<%=はレンダリングで評価されます)。 " <%@" の答えは、それがコンパイラディレクティブであることです(つまり、コンパイラのコマンドライン)。

<%$」について知りません。

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