2008-11-18 8 views
27

Mam kod HTML emitowany przez FCKEditor przechowywane w bazie danych i chciałbym wyświetlić (dobrze render) go na widoku. Tak więc, na przykład, coś przechowywane jako:Jak wyświetlić HTML przechowywany w bazie danych z widoku ASP.NET MVC?

<>pre<>This is some sample text<>pre</&gt 

będą wyświetlane użytkownikowi jak:

This is some sample text 

(z odpowiedniego stylu dla wstępnie sformatowany tekstu)

widoku już ma wymagany ciąg znaków do wyświetlenia od ViewData, po prostu nie jestem pewien, jaki jest najlepszy sposób, aby pokazać go użytkownikowi.

Odpowiedz

53

spróbować

<%= System.Web.HttpUtility.HtmlDecode(yourEncodedHtmlFromYouDatabase) %> 

więcej informacji here @ MSDN online.

hth!

+22

to nie działa dla Razor, na Razor użyć @ Html.Raw (System.Web.HttpUtility.HtmlDecode (Model.yourhtmlvalue)) – Niraj

+4

Sprawdzanie datę moją odpowiedź .. to było PRE Razor: P –

+2

Dziękuję za zwrócenie mojej uwagi na czystość. Czysto, zacytowałem tylko dla czyichś informacji, jego prawdziwa Brzytwa nie istniała, kiedy opublikowałeś swoją odpowiedź. – Niraj

46

Odpowiedź udzielana przez Pure.Krome jest bezbłędna dla MVC2, ale uważają Razor składnię:

@Html.Raw(System.Web.HttpUtility.HtmlDecode(Model.yourEncodedHtmlFromYourDatabase)) 

Alternatywnie

@Html.Raw(Server.HtmlDecode(Model.yourEncodedHtmlFromYourDatabase)) 
+0

Jak mogę to zrobić, aby być tekstem linku – touinta

2

chcesz użyć @Html.Raw(str)

Zobacz MSDN dłużej

Zwraca znaczniki, które nie są kodowane w HTML.

Ta metoda opakowuje znaczniki HTML za pomocą klasy IHtmlString, która renderuje niekodowany kod HTML.