2010-08-25 8 views

Antwort

14

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

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

+2

Es bietet auch die Vermeidung der HTML-Codierung, wenn der Typ des Ausdrucks die 'IHtmlString'-Schnittstelle implementiert - so dass Typen, die ihre eigene Codierung tun, keine spezielle Behandlung benötigen. – Richard

8

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

Von Scott Guthrie's blog post:

Mit ASP.NET 4 wir die Einführung eines neuen Code Ausdruck Syntax (<%: %>) die Ausgabe wie <%= %> Blöcke macht tun - aber die auch automatisch HTML kodiert sie, bevor Sie damit.

Lesen Sie den Blogbeitrag für viel mehr Details.

3

<% = Injiziert den Wert direkt, während <%: automatisch alle gruseligen Sonderzeichen für Sie entfernt.

Mit anderen Worten,

<%: myString %>

ist die gleiche wie

<%= Server.HtmlEncode(myString) %>