2010-04-13 57 views
7

Mögliche Duplizieren:
ASP.NET “special” tags<%# %> vs <%= %>

Was ist der Unterschied zwischen <%# ... %>, <%= ... %> und <%$ ... %>?

Ich konnte keine Informationen darüber finden. Es ist unmöglich, "<% =" mit einer Suchmaschine zu finden.

Haben diese Tags einen Namen?

+1

Soweit Terminologie ich glaube, sie Inline-Ausdrücke – AaronLS

Antwort

8

<%= ... %> entspricht im Allgemeinen Response.Write (...) kann nicht in einem Steuerelementattribut verwendet werden, das runat = "server" lautet

<%: ... %> (ab .NET v4.0), ist eine HTML-codierte Version des <%= %> (als @Eric erwähnt)

<%# ... %> wird in Datenbindungs ​​Kontext für Bind, Eval oder Ausgang verwendet wird (wie @Ray erwähnt)

<%$ ... %> wird im Kontext verwendet, der ein Steuer Attribut mit runat = „server“ (google „Expression Builder“ hat auch einen Blick auf 'Code' expression builder einen allgemeinen Zweck zu machen. es wird ausgewertet, wenn das Attribut/Parameter durch die Steuerung erforderlich ist.

5

<% #%> versucht mithilfe der Bind() - Funktion eine Datenverbindung zu einer Datenquelle herzustellen. Dies macht es zu einer Zwei-Wege-Funktion (Lesen und Schreiben).

<% =%> wird die Daten schreibgeschützt machen.

+2

Auch <%= %> druckt, was auch immer zwischen den Blöcken ist, wo als <% %> führt einfach diese Anweisungen aus – Jimmy

+2

Und jetzt haben wir auch <%: %> für HTML-codierte Ausgabe. –

1

<% #%> kann NUR im Datenbindungskontext verwendet werden.

<% =%> erwartet einen Zeichenfolgenwert, der dann in den Ausgabestream eingeschlossen wird. Also entweder eine String-Variable oder eine Methode, die einen String zurückgibt. Alles andere verursacht einen Fehler.

4

<% #%> wird während der Datenbindung ausgewertet. Es erfordert nicht unbedingt Eval() oder Bind() und Matthew vorgeschlagen - ich verwende es häufig, um Klartext in einem Repeater-Steuerelement anzuzeigen.

<% =%> wird ausgewertet, während die Seite gerendert wird. Dies entspricht dem Aufruf von Response.Write().

+0

+1 Ich wollte gerade nach einer anderen Antwort fragen, wann "jedes" bewertet wird. – AaronLS

0

fand ich einige gute Informationen, die die Terminologie für Ihre zukünftige Google-Suchanfragen stellt klar:

http://authors.aspalliance.com/aspxtreme/aspnet/syntax/aspnetpagesyntax.aspx

-Code Render-Blöcke:

<% inline code %> 

Eine Abkürzung für HttpResponse.Write:

<%=inline expression %> 

Datenbindung Ausdrücke:

<%# databinding expression %> 

In einer Eigenschaft:

<tagprefix:tagname property = "<%# databinding expression %>" runat="server" /> 

Server-Seite kommentiert, so dass sie auf der Seite Quelle des Clients nicht angezeigt werden:

<%-- commented out code or content --%>