2013-03-07 12 views
14

Mam model z własnością Treść zawierająca ciąg znaków HTML.Jak zapobiec ucieczce html w Razor (samodzielny)?

Jak mogę renderować ten ciąg przy użyciu samodzielnej maszynki Razor.

Próbowałem:

@(new HtmlString(Model.Content)) 

a także

@(HttpUtility.HtmlDecode(Model.Content)) 

Model.Content zawsze renderuje HTML-uciekł.

+2

Widziałeś ten SO odpowiedzieć? http://stackoverflow.com/a/4973743/195550 –

+2

'@ (nowe HtmlString (Model.Content)) powinno wystarczyć ... spróbuj z:' @ ((IHtmlString) new HtmlString (Model.Content)) ' – nemesv

+0

To nie działa. Nie mam projektu zewnętrznego HtmlHelper. – Exta

Odpowiedz

15

W bibliotece RazorEngine specjalny "do-not-ucieczka-me" typ jest RazorEngine.Text.IEncodedString. Użyj prostego metody pomocnika na szablonie klasy bazowej:

@Raw("<script>alert('!');</script>") 

Aby przekonać VS i Resharper dać Ci IntelliSense Dodaj następujący wiersz na górze szablonu:

@inherits RazorEngine.Templating.TemplateBase 
+0

To naprawdę denerwujące, że nie używa IHtmlString, jak można się spodziewać. – rossisdead

32

to powinno działać Html.Raw(Model.Content)

Powiązane problemy