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

StackOverflow https://stackoverflow.com/questions/115159

  •  02-07-2019
  •  | 
  •  

Вопрос

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

Например:

<%= Grid.ClientID %>

или

<%# Eval("FullName")%>

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

  • <%#: - привязка данных в кодировке HTML

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

По сути:

  • Выражения <%= оцениваются во время рендеринга.
  • Выражения <%# оцениваются во время DataBind() и вообще не оцениваются, если DataBind() не вызывается.
  • Выражения <%# можно использовать в качестве свойств в серверных элементах управления.<%= выражения не могут.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top