Когда я должен использовать # и = в элементах управления ASP.NET? - PullRequest
27 голосов
/ 22 сентября 2008

Я использую ASP.NET в течение многих лет, но никогда не могу вспомнить, когда используются # и =.

Например:

<%= Grid.ClientID %>

или

<%# Eval("FullName")%>

Может кто-нибудь объяснить, когда каждый из них должен использоваться, чтобы я мог помнить об этом? # Используется только в элементах управления, которые поддерживают привязку данных?

Ответы [ 3 ]

43 голосов
/ 22 сентября 2008

Есть несколько разных «укусов пчел»:

  • <%@ - страница директивы
  • <%$ - доступ к ресурсу
  • <%= - явный вывод на страницу
  • <%# - привязка данных
  • <%-- - блок комментариев на стороне сервера

Также новое в ASP.Net 4:

  • <%: - записывает на страницу, но с кодировкой HTML

Также новое в ASP.Net 4.5:

  • <%#: - привязка данных в кодировке HTML
24 голосов
/ 22 сентября 2008

<% =%> эквивалентно выполнению Response.Write (""), где бы вы его ни разместили.

<% #%> для привязки данных и может использоваться только в тех случаях, когда поддерживается привязка данных (вы можете использовать их на уровне страницы вне элемента управления, если вы вызываете Page.DataBind () в своем коде)

Обзор выражений привязки данных

9 голосов
/ 22 сентября 2008

Вот отличное сообщение в блоге Дэна Кревье , которое просматривает тестовое приложение, которое он написал, чтобы показать различия.

По существу:

  • Выражения <% = оцениваются во время рендеринга </li>
  • Выражения <% # вычисляются во время DataBind () и вообще не оцениваются, если DataBind () не вызывается. </li>
  • <% # выражения могут использоваться в качестве свойств серверных элементов управления. <% = выражения не могут. </li>
...