Powiel możliwe:
ASP.NET “special” tags<%# %> vs <%= %>
Jaka jest różnica między <%# ... %>
, <%= ... %>
i <%$ ... %>
?
Nie mogłem znaleźć żadnych informacji na ten temat. Nie można znaleźć "<% =" za pomocą wyszukiwarki.
Czy te tagi mają nazwę?
Powiel możliwe:
ASP.NET “special” tags<%# %> vs <%= %>
Jaka jest różnica między <%# ... %>
, <%= ... %>
i <%$ ... %>
?
Nie mogłem znaleźć żadnych informacji na ten temat. Nie można znaleźć "<% =" za pomocą wyszukiwarki.
Czy te tagi mają nazwę?
<%= ... %>
jest generalnie odpowiednikiem Response.Write (...) nie można go używać w atrybucie sterowania, który jest runat = "serwer"
<%: ... %>
(od .NET v4.0) jest HTML zakodowaną wersję <%= %>
(jak wspomniano @Eric)
<%# ... %>
stosowany jest w kontekście danych wiązania dla zaciągania Eval lub wyjściowego (jak wspomina @Ray)
<%$ ... %>
jest używany w kontekście atrybut kontrolny z runat = "serwer" (google "ekspresja wyrażeń" również wygląda na generowanie ogólnego celu 'Code' expression builder. jest oceniany, gdy atrybut/parametr jest wymagany przez formant.)
<% #%> spróbuje połączyć ze źródłem danych za pomocą funkcji Bind(). Dzięki temu jest to funkcja dwukierunkowa (odczyt i zapis).
% =%> spowoduje, że dane będą tylko do odczytu.
Również <%= %> drukuje wszystko, co znajduje się pomiędzy blokami, gdzie jako <% %> po prostu wykonuje te instrukcje. – Jimmy
A teraz mamy również <%: %> dla wyjścia zakodowanego w html. –
<% #%> można TYLKO używać w kontekście wiązania danych.
<% =%> oczekuje wartości łańcucha, która następnie zostanie uwzględniona w strumieniu wyjściowym. Tak więc albo zmienna łańcuchowa, albo metoda, która zwraca ciąg znaków. Cokolwiek innego spowoduje błąd.
<% #%> jest oceniany podczas wiązania danych. To niekoniecznie wymaga Eval() lub Bind() i Matthew zasugerował - często go używam do wyświetlania zwykłego tekstu w kontrolerze wzmacniaka.
<% =%> jest oceniane jako renderowanie strony. Jest to odpowiednik wywołania Response.Write().
+1 Już miałem zapytać o inną odpowiedź na temat "kiedy" każdy jest oceniany. – AaronLS
znalazłem jakieś dobre informacje, które wyjaśnia terminologię dla przyszłych wyszukiwań Google:
http://authors.aspalliance.com/aspxtreme/aspnet/syntax/aspnetpagesyntax.aspx
Kod Render bloków:
<% inline code %>
skrót dla HttpResponse.Write:
<%=inline expression %>
Wiązanie danych wyrażeń:
<%# databinding expression %>
w nieruchomości:
<tagprefix:tagname property = "<%# databinding expression %>" runat="server" />
po stronie serwera comments, takie, które nie pojawiają się w źródle strony klienta:
<%-- commented out code or content --%>
Co do terminologii, myślę, że są nazywane wyrażeniami w wierszu – AaronLS