<%$, <%@, <%=, <%#… в чем дело?
-
12-09-2019 - |
Вопрос
Я программировал как на классическом ASP, так и на ASP.NET, и внутри разметки кода на стороне сервера я вижу разные теги.
Недавно я столкнулся с хороший блог на MSDN это превышает разницу между:
<%=
(проценты вместе со знаком равенства) и<%#
(знак процента и решетка/фунт/октоторп)
(<%#
оценивается только при привязке данных, и <%=
оценивается при рендеринге), но я также вижу:
<%$
(знак процента и доллара) и<%@
(знак процента и символ at).
Я считаю <%@
загружает такие вещи, как сборки и, возможно, <%$
загружает вещи из файлов конфигурации?Я не слишком уверен.
Мне просто интересно, может ли кто-нибудь разъяснить мне все это и, возможно, объяснить, почему так важно создавать так много разных тегов, которые, по-видимому, имеют схожую цель?
Решение
<% %>
- для встроенный код (особенно логический поток)<%$ %>
- для оценка выражений (например, переменные ресурсов)<%@ %>
- для Директивы страницы, регистрация сборок, импорт пространств имен и т. д.<%= %>
- это сокращение отResponse.Write
(обсуждается здесь)<%# %>
- используется для выражения привязки данных.<%: %>
- это сокращение от Response.Write(Server.HTMLEncode()) ASP.net 4.0+<%#: %>
- используется для выражения привязки данных и автоматически кодируется в HTML.<%-- --%>
- для комментарии на стороне сервера
Другие советы
Вы рассмотрели 2 из них (<%# оценивается только при привязке данных, а <%= оценивается при рендеринге), а также ответ на "<%@
" заключается в том, что это директивы компилятора (т. е. что-то вроде того, что вы помещаете в командную строку компилятора).
Я не знаю насчет"<%$
".