Когда следует использовать # и = в элементах управления ASP.NET?
-
02-07-2019 - |
Вопрос
Я использую ASP.NET уже много лет, но никогда не могу вспомнить, когда уместно использовать # и =.
Например:
<%= Grid.ClientID %>
или
<%# Eval("FullName")%>
Может ли кто-нибудь объяснить, когда следует использовать каждый из них, чтобы я мог помнить об этом?Используется ли # только в элементах управления, поддерживающих привязку данных?
Решение
<%= %> эквивалентно выполнению Response.Write(""), где бы вы его ни разместили.
<%# %> предназначен для привязки данных и может использоваться только там, где привязка данных поддерживается (вы можете использовать их на уровне страницы вне элемента управления, если вы вызываете Page.DataBind() в своем коде).
Другие советы
Есть несколько разных «пчелиных укусов»:
<%@
- директива страницы<%$
- доступ к ресурсам<%=
- явный вывод на страницу<%#
- привязка данных<%--
- блок комментариев на стороне сервера
Также новое в ASP.Net 4:
<%:
- записывает на страницу, но в HTML-кодировке
Также новое в ASP.Net 4.5:
<%#:
- привязка данных в кодировке HTML
Вот отличный пост в блоге Дэна Кревье это проходит через тестовое приложение, которое он написал, чтобы показать различия.
По сути:
- Выражения <%= оцениваются во время рендеринга.
- Выражения <%# оцениваются во время DataBind() и вообще не оцениваются, если DataBind() не вызывается.
- Выражения <%# можно использовать в качестве свойств в серверных элементах управления.<%= выражения не могут.