ASP.NET «специальные» теги - PullRequest
213 голосов
/ 16 марта 2009

Какое официальное название для «специальных» тегов ASP.NET, например:

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

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

Ответы [ 5 ]

321 голосов
/ 16 марта 2009

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

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

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

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

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

7 голосов
/ 16 марта 2009

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

РЕДАКТИРОВАТЬ: Ранее я думал, что <%# ... %> не был включен в список, но, конечно, это в выражениях привязки данных. Doh.

6 голосов
/ 15 декабря 2010

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

6 голосов
/ 16 марта 2009

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

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

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

0 голосов
/ 14 мая 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...