Wybacz moją ignorancję ASP, ale jaka jest różnica?Jaka jest różnica między <%# %> i <%= %>?
Odpowiedz
Są one nieco nieoficjalnie określane jako "użądlenia pszczół". Istnieją 4 typy:
<%# %>
jest wywoływany podczas fazy DataBinding.
<%= %>
służy do pobierania wartości z kodu do warstwy interfejsu użytkownika. Przeznaczone do kompatybilności wstecznej z aplikacjami ASP. Nie należy używać w .NET.
<%@ %>
reprezentuje directives i pozwala na zachowanie zachowań bez uciekania się do kodu.
<%: %>
(wprowadzone w ASP.NET 4) jest taki sam jak %=
, ale z dodaną funkcjonalnością HtmlEncoding wyjścia. Intencją jest to, aby było to domyślne użycie (ponad %=
), aby pomóc w ochronie przed atakami polegającymi na wstrzykiwaniu skryptów.
Dyrektywy określić ustawienia, które są używane przez strony i łatwość sterowania kompilatory gdy kompilatory przetwarzać ASP.NET Web Forms stron (pliki aspx) i kontroli użytkownika (.ascx) plików.
ASP.NET traktuje dowolny blok dyrektywa (<% @%>), który nie zawiera wyraźnego nazwę Dyrektywa w dyrektywie @ Page (na stronie), albo jako @ dyrektywę sterowania (dla użytkownika Kontrola ).
@Esteban - Dodano link msdn do dyrektyw. Jeśli potrzebujesz ... więcej wyjaśnień, proszę dać mi znać.
Swait, czy mógłbyś wyjaśnić na <%@ %>. Nie jestem pewien, czy rozumiem, co masz na myśli. Dzięki! –
Zobacz wszystkie strony .NET z AJAX lub Master Pages. Znajdziesz tam dyrektywę <%@ $> wskazującą, które strony/biblioteki mają zostać załadowane. –
<%= %> jest całkowicie poprawny dla ASP.Aplikacje NET. W rzeczywistości jest to jedyny sposób na uzyskanie wartości z kodu do warstwy interfejsu użytkownika przy użyciu MVC ASP.NET. Jeśli korzystasz z formularzy internetowych ASP.NET, to tak, jest to odradzane, ale nadal przydatne do wstrzykiwania wartości po stronie serwera do javascript. –
Wersja # jest używana podczas wiązania danych. <% = jest tylko prosty Response.Write
Jak mówi Albert, to wszystko zrobić ze sprawozdania parsowanie Databinding.
Nie do końca związane z pytaniem, jest inny, powiązany notacja w asp.net nazwie Expression Builder:
<asp:SqlDataSource ... Runat="server"
ConnectionString="<%$ ConnectionStrings:Northwind %>"
/>
<asp:Literal Runat="server"
Text="<%$ Resources:MyResources, MyText %>"
/>
i jest rozszerzalna, zobacz http://msdn.microsoft.com/en-us/magazine/cc163849.aspx#S4
JavaScript w aspx, który używa stronę wzorcową.
var e = document.getElementById('<%= lblDescription.ClientID %>');
e.innerHTML = 'getElementById(\'lblDescription\') will be null';
możliwe duplikat [Co jest różnica pomiędzy <% # a <% = otwierania znaczniki?] (Http://stackoverflow.com/questions/100853/what-is-the-difference-between- znaczniki otwierające i otwierające) –
http://stackoverflow.com/questions/100853/what-is-the-difference-between-the-and-opening-tags –