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


232

Яка офіційна назва таких спеціальних тегів ASP.NET:

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

Я не можу зрозуміти концептуальне або добре відоме ім'я для них, тому у мене виникають проблеми з пошуком додаткової інформації. Як бонус, чи може хто-небудь подарувати мені швидке проходження всіх можливих "спеціальних тегів" і що кожен з них робить (або вказує мені на ресурс)?


1
Microsoft також називає їх вбудованими блоками коду, якщо вони містять код.
Роберт Харві

Відповіді:


350

Офіційна назва - " обмежувачі сценаріїв на стороні сервера " або " вбудовані вирази 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 Expression Builder . Використовується для прив'язки виразів виконуваного часу для властивостей управління через атрибути тегів сервера. Використовується з AppSettings, ConnectionStringsабо Resources(або власним розширенням , наприклад, для використання властивостей, що стоять за кодом). Ці призначення додаються до OnInit()методу згенерованого класу.
  • <%-- --%>є коментарем на стороні сервера . Використовується для виключення вмісту з компіляції (і так буде генерувати помилки, якщо коментований елемент керування посилається на відсталий код). На відміну від html-коментарів, вміст не буде включено у висновок.
  • <!-- #Include ... -->- це Директива про включення на сторону сервера . Використовується для вставки вмісту файлу на сторінку, контрольний або глобальний файл. Корисно, коли надмірне управління користувачем, і головна сторінка не може бути використана.

Існує також Блок декларації коду , остання форма вбудованого коду.

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

Це використовується для включення додаткових членів (методів тощо) до класу, сформованого за допомогою розмітки ASP.NET. Вони лише коли-небудь надавалися "в першу чергу для збереження відсталої сумісності зі старими технологіями ASP" і не рекомендуються для використання.


1
Я вважаю, що є <% $ ...%>, що пов'язує дані з наборами / рядками з'єднання.
sisve

Я цього не чув. У вас є джерело?
Седат Капаноглу

3
Їх називають ASP.NET вирази. Дивіться msdn.microsoft.com/en-us/library/d5bd1tad.aspx
elo80ka

7

Немає відповіді на запитання щодо вашого імені, але сторінка MSDN "ASP.NET Page Syntax" - це дуже добре (точніше, це сторінка верхнього рівня; сторінки під нею дають більше інформації).

EDIT: Раніше я вважав, що <%# ... %>він не включений до списку, але, звичайно, це є у виразках, що зв'язують дані. До.


Наразі це посилання не працює. Ви повинні вибрати .NET рамкову версію, перш ніж це зробити.
Сем

1
@Sam: А, дякую - я думаю, це було звільнено, коли .NET 4.5 чомусь вийшов. Я відредагував посилання.
Джон Скіт

1
Я думав, що Джон Скіт не займається веб-розробкою ...!
CodeArtist

6

Я завжди вважав цю сторінку QuickStart дуже корисною, коли у мене виникають сумніви щодо синтаксису на стороні сервера. У ньому детально описано 8 різних стилів розмітки та наводяться наочні приклади кожного з них, крім пояснення плюсів і мінусів.

Однак він не згадує директиву про рівень сторінки, яка IIRC детально описана в іншому місці Quickstart.

Звичайно, це стосується ASP.NET 2.0.


Це відповідь лише за посиланням. Будь ласка, введіть відповідну інформацію.
zzzzBov

1
посилання несвіжа :-(
Roland


6

Хлопці Майкрософт іноді називають їх «самородками» або «кодовими самородками».


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.