2008-10-01 19 views
10

Verzeihen Sie meine ASP Ignoranz, aber was ist der Unterschied?Was ist der Unterschied zwischen <%# %> und <%= %>?

+0

möglich Duplikat [Was ist der Unterschied zwischen dem <% # und <% = Tags öffnen?] (Http://stackoverflow.com/questions/100853/what-is-the-difference-between- the-and-opening-tags) –

+0

http://stackoverflow.com/questions/100853/what-is-the-difference-between-the-and-opening-tags –

Antwort

17

Diese werden etwas informell als "Bienenstiche" bezeichnet. Es gibt 4 Arten:

<%# %> wird während der DataBinding-Phase aufgerufen.

<%= %> wird verwendet, um Werte vom Code zur UI-Ebene zu erhalten. Gemeint ist die Rückwärtskompatibilität mit ASP-Anwendungen. Sollte nicht in .NET verwendet werden.

<%@ %> repräsentiert directives und ermöglicht das Festlegen von Verhalten, ohne auf Code zurückgreifen zu müssen.

<%: %> (in ASP.NET 4 eingeführt) ist das gleiche wie %=, aber mit der zusätzlichen Funktionalität von HtmlEncoding die Ausgabe. Es ist beabsichtigt, dass dies die Standardverwendung ist (über %=), um Angriffe gegen Skripteinschleusungen zu verhindern.

Richtlinien-Einstellungen angeben, die , die von der Seite und Benutzerkontrolle Compiler sind, wenn die Compiler ASP.NET Web Forms-Seiten (ASPX-Dateien) und Benutzersteuerung (ASCX) Dateien verarbeiten.

ASP.NET behandelt jede Richtlinie Block (<% @%>), die keine explizite Richtlinie Namen als @ Page Richtlinie enthält (für eine Seite) oder als @ Richtlinie Control (für einen Benutzer Kontrolle).

@Esteban - Eine msdn-Verknüpfung zu den Anweisungen hinzugefügt. Wenn Sie ... mehr Erklärung benötigen, lassen Sie mich bitte wissen.

+0

Swait, könnten Sie bitte erläutern auf <%@ %>. Ich bin mir nicht sicher, ob ich verstehe, was du meinst. Vielen Dank! –

+0

Werfen Sie einen Blick auf jede .NET-Seite, die Sie mit AJAX oder Masterseiten haben. Dort finden Sie die Direktive <%@ $>, die anzeigt, welche Seiten/Bibliotheken geladen werden sollten. –

+0

<%= %> ist perfekt für ASP gültig.NET-Anwendungen. Tatsächlich ist es die einzige Möglichkeit, mit ASP.NET MVC Werte vom Code auf die UI-Ebene zu bekommen. Wenn Sie ASP.NET-Webformulare verwenden, wird dies zwar abgelehnt, ist aber immer noch nützlich, um serverseitige Werte in JavaScript einzufügen. –

2

Die # Version wird während der Datenbindung verwendet. <% = ist nur ein einfaches Response.Write

2

Nicht ganz auf die Frage bezogen, es gibt eine andere ähnliche Schreibweise in asp.net namens Expression Builder:

<asp:SqlDataSource ... Runat="server" 
ConnectionString="<%$ ConnectionStrings:Northwind %>" 
/> 

<asp:Literal Runat="server" 
    Text="<%$ Resources:MyResources, MyText %>" 
/> 

und es ist erweiterbar, siehe http://msdn.microsoft.com/en-us/magazine/cc163849.aspx#S4

0

Javascript in ASPX, die eine Masterseite verwendet.

var e = document.getElementById('<%= lblDescription.ClientID %>'); 
e.innerHTML = 'getElementById(\'lblDescription\') will be null'; 
Verwandte Themen