2009-09-30 14 views
7

Ich habe das Repeater-Steuerelement in asp.net jetzt für eine Weile verwendet ... und hin und wieder vergess ich, das '#' innerhalb der <% # DataBinder.Eval (Container.DataItem, "NAME") hinzuzufügen %>ASP.NET: Was bedeutet die '#' beginnend <% %>?

so habe ich mich gefragt, was es bedeutet?

Antwort

12

Es zeigt an, dass Sie binding an expression sind, so wie Sie eval oder bind gezeigt haben.

Datenbindung Syntax

Datenbindungsausdrücke innerhalb <% # und%> Trennzeichen und verwenden Sie die Evaluierungs- und Bind-Funktionen enthalten sind. Die Eval-Funktion wird verwendet, um eine unidirektionale (schreibgeschützte) Bindung zu definieren. Die Bindungsfunktion wird für bidirektionale (aktualisierbare) Bindung verwendet. Zusätzlich zum Aufrufen der Eval and Bind-Methoden zum Ausführen der Datenbindung in einem Datenbindungsausdruck können Sie jeden öffentlichen Gültigkeitscode innerhalb der Trennzeichen <% # und%> aufrufen, um diesen Code auszuführen und einen Wert während der Seitenverarbeitung zurückzugeben.

+0

thx alot: D, die ziemlich hilfreich war! –

8

nur hinzufügen ...

Sie auch haben:

$

wir an, Sie eine Ressource binden, wie:

<%$ Resources:Menu, oktext %> 

=

die meisten bekannten Bindemittel Zeichen, lassen Sie uns tun Sie das gleiche wie die Methode Response.Write

<%= myVariable %> instead <% Response.Write(myvariable) %> 
+0

+1 für die nützliche Info :) –

5

Neu bei .NET 4.0 gibt es

: 

die wie ist die <%= %> aber HTML codiert Ihre Ausgabe. Es ist wie verwendet wird:

<%: Model.Name %> 

Und es ist wie

<%= HttpServerUtility.HtmlEncode(Model.Name) %> .. or .. 
<% Response.Write(HttpServerUtility.HtmlEncode(Model.Name)) %> 
+0

+1 für die nützliche Info :) –

2

hier Aufruf ist ein Hinweis auf die $

<%$ prefix:value %> 

es einen Ausdruck Builder auf Präfix basiert erstellt und übergibt die Wert für den Ausdrucksersteller zur Auswertung. Der Ausdruck Builder gibt dann den gewünschten Wert auf die Seite

Ein Beispiel für ASP.NET 4 Routing würde:

<%$ RouteUrl:RouteName=ProductList %> 

, die die Route ‚Product‘ wertet die in den RouteTable.Routes sein sollte.

Die Route kann so in Global.asax zur RouteTable hinzugefügt werden.cs:

RouteTable.Routes.Add("ProductList", new Route("products", new PageRouteHandler("~/ProductList.aspx") 
)); 

Der Vorteil der Verwendung von $ und RouteUrl, ist, dass Sie alle Ihre Routing und URLs an einem Ort in Global.asax.cs halten kann.

Es gibt ein paar mehr Infos über $ hier:

http://www.beansoftware.com/ASP.NET-Tutorials/Expression-Builder.aspx

+0

+ 1, Vielen Dank! .. Lesen Sie den Artikel jetzt .. –