Как <% $%> и <% #%> работают в 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

Это объясняет следующие блоки выражения:

<%$ %>

<%# %>

<% %>

<%= %>

Другие вопросы по тегам