Я программировал как в классическом ASP, так и в ASP.NET, и я вижу разные теги внутри разметки для кода на стороне сервера.
Недавно я наткнулся на хороший блог на MSDN, в котором рассказывается о разнице между:
<%=
(процент вместе со знаком равенства) и<%#
(знак процента и хэш / фунт / октоторп)
( <%#
оценивается только при привязке данных и <%=
оценивается при рендере), но я также вижу:
<%$
(знак процента и доллара) и<%@
(знак процента и символ).
Я считаю, что <%@
загружает такие вещи, как сборки и, возможно, <%$
загружает вещи из конфигурационных файлов? Я не слишком уверен.
Мне было просто интересно, если кто-нибудь мог бы прояснить все это для меня и, возможно, объяснить, почему так важно создавать так много разных тегов, которые, казалось бы, имеют схожую цель?
asp.net
server-tags
Аарон
источник
источник
<%#
часто используется сeval
, но это не обязательно: вы можете использовать его для запуска любого серверного кода, при условии, что вы запускаетеPage.DataBind()
на содержащей странице или его главной странице. Кажется, что это единственный вариант, если вы хотите «внедрить» код на стороне сервера в атрибуты элементов управления на стороне сервера, таких как<asp:TextBox
,<asp:LinkButton
или даже a<input runat="server">
."<%=" "<%:""<%@" "<%#"
и он отправил меня сюда.Ответы:
<% %>
- для встроенного кода (особенно логического потока)<%$ %>
- для оценки выражений (например, переменных ресурсов)<%@ %>
- для директив Page , регистрации сборок, импорта пространств имен и т. д.<%= %>
- это сокращение отResponse.Write
(обсуждается здесь )<%# %>
- используется для выражения привязки данных .<%: %>
- сокращение от Response.Write (Server.HTMLEncode ()) ASP.net 4.0+<%#: %>
- используется для выражений привязки данных и автоматически кодируется HTMLE.<%-- --%>
- для комментариев на стороне сервераисточник
Вы рассмотрели 2 из них (<% # оценивается только при привязке данных, а <% = оценивается при рендеринге), и ответ "
<%@
" состоит в том, что это директивы компилятора (т. Е. Такие вещи, как то, что вы положили бы на командная строка компилятора).Я не знаю о "
<%$
".источник