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?
asp.net
server-tags
Aaron
źródło
źródło
<%#
jest często używany zeval
, ale nie musi: możesz go użyć do uruchomienia dowolnego kodu po stronie serwera, pod warunkiem, że uruchomisz goPage.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.Odpowiedzi:
<% %>
- dotyczy kodu wbudowanego (szczególnie przepływu logicznego)<%$ %>
- służy do oceny wyrażeń (takich jak zmienne zasobów)<%@ %>
- dotyczy dyrektyw stron , rejestracji zestawów, importowania przestrzeni nazw itp.<%= %>
- jest skrótem odResponse.Write
(omówione tutaj )<%# %>
- służy do wyrażeń powiązania danych .<%: %>
- jest skrótem od Response.Write (Server.HTMLEncode ()) ASP.net 4.0+<%#: %>
- służy do wyrażeń powiązania danych i jest automatycznie kodowany HTMLEn.<%-- --%>
- dotyczy komentarzy po stronie serweraźródło
Omówiłeś 2 z nich (<% # jest oceniane tylko w powiązaniu z danymi, a <% = jest oceniane w czasie renderowania), a odpowiedź na „
<%@
” jest taka, że są to dyrektywy kompilatora (tj. Rzeczy takie jak to, co nałożysz wiersz poleceń kompilatora).Nie wiem o „
<%$
”.źródło