Вопрос

Я использовал веб -формы 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().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top