2010-09-26 30 views

Antwort

8

Es ruft eine Htmlencode auf den Wert

ScottGu's blog für weitere Informationen anzeigen.

+0

Danke für die Hilfe alle –

+0

Danke. Manchmal stoße ich auf eine Frage, die ich hatte, bin aber nie dazu gekommen, zu fragen ... –

2

<%: %> würde bevorzugt werden, da sie automatisch HTML den Wert Codiert, aber es funktioniert nur in .NET 4.

4

Sie sind nicht das gleiche:

<%=%> is the same as `Response.Write` 
<%:%> adds `Server.HtmlEncode` to `Response.Write` 

Daher <%:%> bevorzugt wird (hinzugefügt seit .NET 4.0), da es die Sicherheitsmaßnahme zum Codieren der Ausgabe vor dem Ausgeben der Zeichenfolge hinzufügt.

Wenn Sie .NET 3.5 oder früher verwenden, empfehlen wir die Verwendung von <%=Server.HtmlEncode(val)%>.

+0

sind Server.HtmlEncode und Html.Encode dasselbe Ding ?? –

+0

@Praveen Prasad - Ich glaube, sie sollen die gleiche Arbeit machen, aber in der Praxis ein bisschen anders (nicht genug, um Probleme zu verursachen, aber eine ist strenger als die andere, wenn Erinnerung dient). – Oded

2
<%: someString %> 

ist wie

<%= HttpUtility.HtmlEncode(someString) %> 
2

Sie verwenden „<%:“ Wenn Sie die Zeichenfolge sanieren müssen (dh von etwas, das von einem Benutzer inputed wurde und kann möglicherweise gefährliche sein)

Grundsätzlich < & = schreibt nur als Zeichenfolge in den HTML-Code und <%: ist das gleiche wie Schreiben <% = Html.Encode ("etwas")%>

+0

<%: %> ist in der Regel besser. In der Razor-View-Engine hat Microsoft es so gemacht, dass das @ das Äquivalent zu <%: %> ist. Und Sie müssen @ Html.Raw (Wert) verwenden, um das entsprechende Verhalten <%= %> zu erhalten. –