<% $, <% @, <% =, <% # ... яка угода?


211

Я запрограмований як у класичному ASP, так і в ASP.NET, і я бачу різні теги всередині розмітки для коду сторони сервера.

Нещодавно я натрапив на хороший блог на MSDN, який перевершує різницю між:

  • <%= (відсоток разом зі знаком рівності) та
  • <%# (знак відсотка та хеш / фунт / октоторп)

( <%#оцінюється лише при зв’язуванні даних і <%=оцінюється при візуалізації), але я також бачу:

  • <%$ (знак відсотка та долара) та
  • <%@ (знак відсотка та символ).

Я вважаю, <%@завантажує такі речі, як збірки, і, можливо, <%$завантажує речі з конфігураційних файлів? Я не надто впевнений.

Мені було просто цікаво, чи може хтось мені все це пояснити і, можливо, пояснити, чому важливо створити так багато різних тегів, які, здавалося б, мають подібне призначення?


72
Я радий, що ви запитуєте, тому що дуже важко гугл;)
Ніколас Доріє

8
Неможливо Google!
jdbosley

<%#часто використовується з eval, але це не обов'язково: ви можете використовувати його для запуску будь-якого коду сторони сервера, за умови, що ви працюєте Page.DataBind()на сторінці, що містить або головній сторінці. Здається, що це ваш єдиний варіант у випадку, якщо ви хочете "ввести" код сторони сервера в атрибути елементів управління на стороні сервера, таких як <asp:TextBox, <asp:LinkButtonабо навіть a <input runat="server">.
Гілад Барнер

1
@jdbosley Я гуглив, "<%=" "<%:""<%@" "<%#"і він мене сюди надіслав.
Rudey

2
@RuudLenders, пощастило тобі і добру роботу Google. У 2014 році пошук цих тегів не дав хороших результатів.
jdbosley

Відповіді:


296

Я думаю, це тому, що це прийнята відповідь, але спроба редагувати / не посилатися не вдалося. ось посилання, яке я намагався розмістити про оцінку вираження "<% $": msdn.microsoft.com/en-us/library/d5bd1tad.aspx
Джон Макінтайр

6
Чи є назва для всіх цих? Як називаються ці групи?
Vippy

9
@Vippy Їх називають бджолиними жалами .
Ян Бойд

1
@Lankymart Найдавніше використання, яке я можу знайти, це вересень 2008 року
Ian Boyd

1
@Vippy MS називає їх Вбудовані кодові блоки "Бджолині жалі" - це неофіційний термін.
shiggity

5

Ви охопили 2 з них (<% # оцінюється лише при зв’язуванні даних, а <% = оцінюється при візуалізації), а відповідь " <%@" - це те, що це директиви компілятора (тобто такі речі, як те, що ви наділили б командний рядок компілятора).

Я не знаю про " <%$".

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