Was bedeutet ":" in%: und was ist der Unterschied zu% =?

8

In ASP.NET MVC 2 <%: Tag wurde eingeführt, um <%= für HTML-Helfer zu ersetzen. Aber was bedeutet es und was ist der Unterschied zum vorherigen? Wann soll ich <%= und wann <%: verwenden?

Danke

    
Fabiano 25.08.2010, 14:56
quelle

3 Antworten

14

In ASP.NET 4 macht die <%: xyz %> -Syntax dasselbe wie <%= Server.HtmlEncode(xyz) %> in früheren Versionen. Es ist einfach eine Abkürzung, weil es so oft verwendet wird.

Wie Richard unten sagt, kann es auch feststellen, ob eine Zeichenfolge nicht codiert werden muss, abhängig davon, ob sie die IHtmlString -Schnittstelle implementiert oder nicht.

    
Joe Phillips 25.08.2010, 15:01
quelle
8

IIRC, <%: stellt automatisch HTML-Codierung zur Verfügung, so dass Sie es nicht selbst tun müssen.

Von Scott Guthries Blogpost :

  

Mit ASP.NET 4 stellen wir ein   neue Codeausdrucksyntax ( <%: %> )   Dies gibt Ausgabe wie <%= %> Blöcke   do - aber was auch automatisch HTML   kodiert es vorher.

Lesen Sie den Blogbeitrag für viel mehr Details.

    
Jon Skeet 25.08.2010 14:58
quelle
3

& lt;% = Injiziert den Wert direkt, während & lt;%: automatisch alle gruseligen Sonderzeichen für dich entfernt.

Mit anderen Worten

<%: myString %>

ist dasselbe wie

<%= Server.HtmlEncode(myString) %>

    
MojoFilter 25.08.2010 15:00
quelle