Когда следует использовать # и = в элементах управления ASP.NET?

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

Например:

<%= Grid.ClientID %>

или

<%# Eval("FullName")%>

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

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Ответ 3

Здесь отличный пост в блоге Дэна Кревье, который проходит через тестовое приложение, которое он написал, чтобы показать различия.

По существу:

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