Programowałem zarówno w klasycznej ASP, jak i ASP.NET i widzę różne znaczniki wewnątrz kodu dla kodu po stronie serwera.
Ostatnio spotkałem dobrego bloga na MSDN, który omawia różnicę między:
<%=
(procent razem ze znakiem równości) i<%#
(znak procentu i skrót / funt / oktotorpe)
( <%#
jest oceniany tylko w powiązaniu danych i <%=
jest oceniany podczas renderowania), ale widzę też:
<%$
(znak procentu i dolara) i<%@
(znak procentu i symbol).
Wierzę, że <%@
ładuje rzeczy takie jak zespoły, a może <%$
ładuje rzeczy z plików konfiguracyjnych? Nie jestem zbyt pewny.
Zastanawiałem się tylko, czy ktoś mógłby wyjaśnić mi to wszystko i ewentualnie wyjaśnić, dlaczego ważne jest tworzenie tak wielu różnych tagów, które pozornie mają podobny cel?
<%#
jest często używany z eval
, ale nie musi: możesz go użyć do uruchomienia dowolnego kodu po stronie serwera, pod warunkiem, że uruchomisz go Page.DataBind()
na stronie zawierającej lub na stronie wzorcowej. Wygląda na to, że jest to twoja jedyna opcja na wypadek, gdybyś chciał „wstrzyknąć” kod po stronie serwera do atrybutów kontrolek po stronie serwera, takich jak <asp:TextBox
, <asp:LinkButton
a nawet <input runat="server">
.
"<%=" "<%:""<%@" "<%#"
i wysłało mnie tutaj.