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