Специальные теги ASP.NET

Какое официальное название "специальных" тегов ASP.NET выглядит следующим образом:

<%# %>
<%= %>
<%@ %>
<%$ %>

Похоже, я не могу понять концептуальное или известное имя, поэтому у меня возникли проблемы с поиском дополнительной информации. В качестве бонуса, может ли кто-нибудь дать мне краткое описание всех возможных "специальных тегов" и что каждый из них (или указать мне на ресурс)?

Ответ 1

Официальное название: разделители на стороне сервера "или" ASP.NET встроенные выражения ". Окно настроек подсветки синтаксиса Visual Studio 2008 вызывает эти" HTML-серверные стороны Script ". Ребята из Microsoft называет их" кодовыми самородками" в своих блогах.

  • <%@ %> является директивой для веб-страниц ASP.NET. Используется для страниц и элементов управления для настройки параметров компилятора страницы/управления (<%@ Control Inherits="MyParentControl" %>).
    • <%@ %> также является Директивой по приложениям. Используется для указания параметров приложения для global.asax. Отличается от директив страницы, поскольку он использует только другой набор тегов.
  • <% %> является Code Render Block (для встроенного кода). Одна из четырех форм Встроенные блоки кода. Используется для включения серверного кода в метод Render() (<% x = x + 1; %>) сгенерированного класса. Формат: однострочный или многострочный (например, if/then/else с чередованием html), но не может использоваться для объявления функций.
  • <%= %> является Code Render Block (для встроенных выражений). Используется как сокращение для <%Response.Write(value)%>
  • <%: %> (неофициально "Код кодирования HTML-кода ") аналогичен предыдущему, но вывод кодируется в формате HTML.
  • <%# %> представляет собой выражение привязки данных. Используется для односторонней (только для чтения) или двусторонней (обновляемой) привязки через Eval, Xpath, Bind или выражения (например, выбранное значение выпадающего элемента управления). Привязывает выражения к связанным с данными свойствам управления через разметку атрибута управления или как отдельный тег, который генерирует экземпляр DataBoundLiteralControl со значением в свойстве Text. Выражения оцениваются обработчиком событий DataBinding для элемента управления.
  • <%#: %> представляет собой выражение кодирования HTML-кодировки (новое в ASP.NET 4.5). Он объединяет функции <%# %> и <%: %>.
  • <%$ %> является ASP.NET Expression Builder. Используется для привязки выражения времени выполнения для свойств управления с помощью атрибутов тегов сервера. Используется с AppSettings, ConnectionStrings или Resources (или собственное пользовательское расширение, например, для использования свойств кода). Эти назначения добавляются к методу OnInit() сгенерированного класса.
  • <%-- --%> является Комментарий к серверу. Используется для исключения содержимого из компиляции (и, следовательно, будет генерировать ошибки, если элемент управления с комментариями упоминается в коде). В отличие от комментариев html содержимое не будет включено в вывод.
  • <!-- #Include ... --> представляет собой Директиву на стороне сервера. Используется для вставки содержимого файла в файл страницы, управления или глобального файла. Полезно, когда пользовательский контроль переполняется, и основная страница не может быть использована.

Существует также Блок декларации кода, окончательная форма блока встроенного кода.

<script runat="server">
bool IsTrue() {
  return false;
}
</script>

Это используется для включения дополнительных членов (методов и т.д.) в класс, созданный с помощью разметки ASP.NET. Они всегда были предоставлены "прежде всего для сохранения обратной совместимости со старой ASP-технологией" и не рекомендуется использовать.

Ответ 2

Нет ответа на ваш вопрос с именем, но страница MSDN "ASP.NET Page синтаксис" довольно хороша (вернее, что страница верхнего уровня, страницы под ней дают больше информации).

EDIT: ранее я думал, что <%# ... %> не был включен в список, но, разумеется, это относится к Data-Binding Expressions. Doh.

Ответ 3

Я всегда находил эту страницу QuickStart, чтобы быть очень полезной, всякий раз, когда я сомневаюсь в синтаксисе на стороне сервера. Он описывает 8 различных стилей разметки и предоставляет иллюстративные примеры каждого из них, в дополнение к объяснению плюсов и минусов.

Он не упоминает директиву на уровне страницы, хотя, который IIRC подробно описан в другом месте в Quickstart.

Конечно, это относится к ASP.NET 2.0.

Ответ 4

Ребята из Microsoft иногда называют их "самородками" или "самородками кода".

Ответ 5

Я также слышал, что они назывались "V stings", в том числе в подкасте StackOverflow.