2010-09-26 15 views

risposta

8

Si chiama un HtmlEncode sul valore

Vedi ScottGu's blog per maggiori informazioni.

+0

Grazie per l'aiuto di tutti –

+0

Grazie. A volte mi imbatto in una domanda che ho avuto ma non sono mai riuscito a chiedere ... –

2

<%: %> sarebbe preferibile in quanto automaticamente HTML Codifica il valore, ma funziona solo in NET 4.

4

Essi non sono gli stessi:

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

Quindi, <%:%> è preferito (aggiunto dal .NET 4.0), poiché aggiunge la misura di sicurezza della codifica dell'output prima di emettere la stringa.

Se si utilizza .NET 3.5 o versioni precedenti, è consigliabile utilizzare <%=Server.HtmlEncode(val)%>.

+0

sono Server.HtmlEncode e Html.Encode stessa cosa ?? –

+0

@Praveen Prasad - Credo che si suppone stiano facendo lo stesso lavoro, ma in pratica un po 'diverso (non abbastanza da causare problemi, ma uno è più rigido dell'altro, se la memoria serve). – Oded

2
<%: someString %> 

è come

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

Si utilizza "<%:" quando è necessario disinfettare la stringa (cioè da qualcosa che è stato inputed da un utente e può essere potenzialmente dannoso)

Fondamentalmente < & = scrive solo come stringa come per l'HTML e <%: è lo stesso che scrivere <% = Html.Encode ("qualcosa")%>

+0

<%: %> è generalmente migliore. Nel motore di visualizzazione Razor, Microsoft ha fatto in modo che la @ fosse l'equivalente a <%: %>. E devi usare @ Html.Raw (valore) per ottenere il comportamento equivalente <%= %>. –