Как <% $%> и <% #%> работают в ASP.NET? - PullRequest
3 голосов
/ 01 декабря 2011

В течение некоторого времени я использовал ASP.NET Web Forms и ASP.NET MVC.

Таким образом, <%= %> в представлениях означает Response.Write(), <%: %>, введенный в MVC, добавляет экранирование html.

В конструкторе элементов управления SqlDataSource генерируется что-то вроде этого ConnectionString="<%$ ConnectionStrings:FooConnectionString %>", а в ретрансляторе используется <%# Eval("") %> синтаксис.

Мой вопрос заключается в том, что именно делают теги <%$ %> и <%# %>, в какие методы они распространяются и как они ведут себя?

Ответы [ 3 ]

2 голосов
/ 01 декабря 2011

Я вырезал этот текст из книги (я не помню, какая книга) некоторое время назад, так как я думал, что он хорошо объяснил синтаксис <%# %> -

Те из вас, кто знаком с классическими приложениями ASP, могут подумать, что Синтаксис <% #%> выглядит очень знакомым. Это похоже на цель, но Вы должны убедиться, что вы не путаете два, потому что при этом может привести к неправильной работе приложения. Тогда как в ASP (и ASP.NET), синтаксис <% =%> вызывает все, что находится внутри скобки, которые будут оцениваться во время визуализации, <% #%> скобки, уникальные для ASP.NET оцениваются только во время привязки. Как вы увидите позже в этот раздел, страница и каждый привязываемый элемент управления на странице имеют Метод DataBind (). Выражения, содержащиеся в привязке данных скобки (<% #%>) оцениваются только тогда, когда DataBind элемента управления метод вызывается.

Это отвечает только на половину вашего вопроса, но отличный ответ Роба Стивенсона-Леггетта охватывает все остальное. Я просто подумал добавить это в качестве иллюстрации.

2 голосов
/ 01 декабря 2011

<%$ %> - это синтаксис выражения .

Есть несколько встроенных ярлыков для AppSettings, Resources и ConnectionStrings.Вы также можете написать свой .

<%# %> - это синтаксис выражения 1011 * .

Используется в элементах управления с привязкой к данным для разрешения значений свойств из привязываемого объекта.

1 голос
/ 30 декабря 2011

Я написал сообщение в блоге о различных типах выражений, доступных в веб-формах ASP.NET:

Выражения и выражения, часть 2: Типы блоков кода ASP.NET (Интернет-архив)

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

<%$ %>

Синтаксис выражений ASP.NET, используемый для привязки к настройкам приложения, строкам соединения и ресурсам.

<%# %>

Синтаксис привязки данных ASP.NET, оценивается только при вызове метода привязки данных элемента управления.

<% %>

Блоки кода, код становится частью RenderMethodDelegate.Код должен быть заявлениями.Для вывода чего-либо используйте Response.Write.

<%= %>

То же, что и выше, за исключением того, что код должен быть одним выражением.Это будет завернуто в HtmlTextWrite.Write().

...