Как < %$ %> и < %# %> работают в ASP.NET?
-
26-10-2019 - |
Вопрос
Я использовал веб -формы ASP.NET и ASP.NET MVC в течение некоторого периода времени.
Так <%= %>
В взглядах означают Response.Write()
, <%: %>
Представлено в MVC добавляет HTML Escaping.
В SQLDATASource Designer генерирует что -то подобное ConnectionString="<%$ ConnectionStrings:FooConnectionString %>"
И в ретранслятере вы используете <%# Eval("") %>
Sytax.
Мой вопрос в том, что именно делает <%$ %>
а также <%# %>
Теги, в какие методы они попадали и как они себя ведут?
Решение
<%$ %>
это Синтаксис выражения.
Есть несколько встроенных ярлыков для приложений, ресурсов и соединений. Вы также можете Напишите свой.
<%# %>
это Синтаксис экспрессии DataBinding.
Это используется в элементах управления базой базы для разрешения значений свойств из связанного объекта.
Другие советы
Я вырезал этот текст из книги (я не могу вспомнить, какую книгу) некоторое время назад, когда я думал, что это объяснил <%# %>
Синтаксис хорошо -
Те из вас, кто знаком с классическими приложениями ASP, может подумать, что синтаксис < %# %> выглядит очень знакомо. Это похоже на цель, но вы должны убедиться, что вы не путаете их, потому что это может привести к неправильному функционированию вашего приложения. Принимая во внимание, что в ASP (и ASP.NET) синтаксис < %= %> вызывает то, что находится внутри скобков, которые можно оценить во время рендеринга, кронштейны < %# %> уникальные для ASP.NET оцениваются только во время связывания. Как вы увидите позже в этом разделе, страница и каждое связующее управление на странице имеют метод DataBind (). Выражения, содержащиеся в кронштейнах для привязки данных (< %# %>), оцениваются только тогда, когда используется метод базы данных управления.
Это отвечает только на половину вашего вопроса, но отличный ответ Роба Стивенсона-Леггета охватывает все остальное. Я просто подумал, что добавлю это с помощью дополнительной иллюстрации.
Я написал сообщение в блоге о различных типах выражений, доступных в веб -формах ASP.NET:
Выражения против операторов, часть 2: типы блоков кода ASP.NET (Интернет -архив)
Это объясняет следующие блоки выражения:
<%$ %>
Синтаксис экспрессии ASP.NET, используемый для привязки с настройками приложения, строк соединения и ресурсов.
<%# %>
Синтаксис связывания данных ASP.NET, оценивается только при вызове метода привязки данных управления.
<% %>
Кодовые блоки, код становится частью RenderMethodDelegate
. Анкет Код должен быть заявлениями. Использовать Response.Write
вывести что -то.
<%= %>
То же, что и выше, за исключением того, что код должен быть единственным выражением. Он будет завернут в HtmlTextWrite.Write()
.