Как <% $%> и <% #%> работают в ASP.NET?
Я использовал ASP.NET Web Forms и ASP.NET MVC в течение некоторого периода времени.
Так <%= %>
во взглядах значит Response.Write()
, <%: %>
введенный в MVC добавляет html-экранирование.
В SqlDataSource элемент управления конструктора генерирует что-то вроде этого ConnectionString="<%$ ConnectionStrings:FooConnectionString %>"
и в репитере вы используете <%# Eval("") %>
sytax.
Мой вопрос, что именно делать <%$ %>
а также <%# %>
теги, в какие методы они распространяются и как они себя ведут?
3 ответа
<%$ %>
это синтаксис выражения.
Есть несколько встроенных ярлыков для AppSettings, Resources и ConnectionStrings. Вы также можете написать свой собственный.
<%# %>
является синтаксисом выражения привязки данных.
Это используется в элементах управления с привязкой к данным для разрешения значений свойств из привязываемого объекта.
Я вырезал этот текст из книги (я не могу вспомнить, какая книга) некоторое время назад, поскольку я думал, что это объяснило <%# %>
синтаксис хорошо -
Те из вас, кто знаком с классическими приложениями ASP, могут подумать, что синтаксис <% #%> выглядит очень знакомым. Это похоже на цель, но вы должны убедиться, что вы не перепутаете их, потому что это может привести к неправильной работе приложения. В то время как в ASP (и ASP.NET) синтаксис <% =%> приводит к тому, что все, что находится внутри скобок, оценивается во время рендеринга, скобки <% #%>, уникальные для ASP.NET, оцениваются только во время связывания. Как вы увидите далее в этом разделе, страница и каждый привязываемый элемент управления на странице имеют метод DataBind(). Выражения, содержащиеся в скобках привязки данных (<% #%>), оцениваются только при вызове метода DataBind элемента управления.
Это отвечает только на половину вашего вопроса, но превосходный ответ Роба Стивенсона-Леггетта охватывает все остальное. Я просто подумал, что добавлю это в качестве иллюстрации.
Я написал сообщение в блоге о различных типах выражений, доступных в ASP.NET Web Forms:
Выражения против утверждений, часть 2: типы блоков кода ASP.NET
Это объясняет следующие блоки выражения:
<%$ %>
<%# %>
<% %>
<%= %>