2009-06-05 26 views
186

Programowałem w klasycznych ASP i ASP.NET i widzę różne znaczniki wewnątrz znaczników dla kodu po stronie serwera.

I niedawno natknąć good blog on MSDN że podchodzi różnicy między:

  • <%= (procentowo wraz ze znakiem równości) oraz
  • <%# (znak procent i hash/funt/octothorpe)

(<%# jest oceniany tylko DataBind i <%= oceniano przy czyni), ale także na stronie:

  • <%$ (procent i znak dolara) i
  • <%@ (znak procent i na symbol).

Wierzę, że <%@ ładuje rzeczy takie jak złożenia i może <%$ ładuje rzeczy z plików konfiguracyjnych? Nie jestem zbyt pewny.

Zastanawiałem się tylko, czy ktoś może mi to wszystko wyjaśnić i ewentualnie wyjaśnić, dlaczego ważne jest stworzenie tak wielu różnych znaczników, które zdają się mieć podobny cel?

+62

Cieszę się zapytać, bo to jest bardzo trudne do google;) –

+8

Niemożliwe do Google! – jdbosley

+0

'<% #' jest często używane z 'eval', ale nie musi: możesz użyć go do uruchomienia dowolnego kodu po stronie serwera, pod warunkiem, że uruchomisz' PageDataBind() 'na stronie zawierającej lub jej Strona główna.Wydaje się, że jest to twoja jedyna opcja na wypadek, gdybyś chciał "wstrzyknąć" kod po stronie serwera do atrybutów kontrolek po stronie serwera, takich jak ''. –

Odpowiedz

263
+0

Myślę, że to dlatego, że jest to akceptowana odpowiedź, ale próba edycji/linku nie zadziałała. Oto link, który próbowałem umieścić na temat oceny wyrażenia "<% $": http://msdn.microsoft.com/en-us/library/d5bd1tad.aspx –

+0

Awesome! Wiem, że to jest stare, ale szukałem w Internecie tych informacji przez ostatnie 2 dni. Dzięki! – jdbosley

+5

Czy istnieje nazwa dla tych wszystkich? Co nazywa się grupą? – Vippy

4

pan objęte 2 z nich (<% # jest oceniana wyłącznie na DataBind i <% = oceniana jest na render), a odpowiedź na „<%@” jest to, że dyrektywy kompilatora (tj. Rzeczy jak to, co wstawiłeś wiersz poleceń kompilatora).

Nie wiem o "<%$".