2013-03-21 15 views
35

sulla mia pagina principale, non ho il codice @{Html.RenderPartial("_Partial1.cshtml");}, e sulla mia parziale, ho una stringa HTML:Come eseguire il rendering della stringa HTML in ASP.NET MVC?

@{ 
    // The string is actually dynamic, not static. This is here for simplicity 
    string abc="<div class=\"error\">abc</div>"; 
} 
@abc 

voglio uscita abc con alcuni stili di errore CSS, ma in realtà ho avuto <div class="error">abc</div> - naturalmente , non ci sono stili lì. Come faccio a interpretarlo come codice sorgente HTML e non come stringa?

+1

http://stackoverflow.com/questions/4281424/asp-net-mvc-razor-output-html-string-non-escaped – adt

+0

Cosa c'è di sbagliato con '

abc
'? – alex

risposta

92

È possibile utilizzare il metodo Html.Raw() per quello.

+5

Questo è stato assolutamente incredibile. Suggerimento se hai un file .html che vuoi renderizzare, usa invece: @ Html.Raw (File.ReadAllText (Server.MapPath ())) – cgatian

+0

Questa è una risposta pericolosa. Vedere https://en.wikipedia.org/wiki/Cross-site_scripting – Unw0und

+0

Dire che dovevo definire una variabile globale nel rasoio, e quindi usare @ html.Raw (su questa variabile perché voglio definire qualche markup in esso e renderizzare C'è un modo in cui qualcuno può impostare un valore per una variabile Razor dall'URL? Voglio solo assicurarmi che questo non sia vulnerabile a XSS tramite l'iniezione di URL .. Grazie! – eaglei22

Problemi correlati