2012-01-29 15 views
17

Jestem w trakcie aktualizacji projektu C# MVC2 do C# MVC4.Dekodowanie kodowania HTML C# MVC4

Oto scenariusz w MVC2

ciąg wejściowy (z bazy danych)

Model.text="<p>Hi<br>hello!<br>you there</p>" 

wyjściowa (renderowane w widoku) świadczonych za pomocą

<%=Model.text %> 

Hi 
hello! 
you there 

Oto scenariusz w MVC4

ciąg wejściowy (z bazy danych)

Model.text="<p>Hi<br>hello!<br>you there</p>" 

wyjściowa (renderowane w widoku) renderowane przy użyciu

@Model.text 

<p>Hi<br>hello!<br>you there</p> 

Próbowałem

@HttpUtility.HtmlDecode(Model.text) 
@HttpUtility.HtmlEncode(Model.text) 

Nic nie pomaga ...

Miałem podobny problem w MVC4 asked here (wynik ajax jest renderowany tagami html, a nie faktycznym html)

Czy niektóre z moich ustawień mnie niepokoją ??? czy to ma coś wspólnego z HTML 5, czy też brakuje mi czegoś w korzystaniu z MVC4. Proszę o pomoc!

Odpowiedz

35

To powinno załatwić sprawę:

@Html.Raw(Model.text) 
+1

Dzięki Justin !! to pomogło ... To również rozwiązało problem w linku http://stackoverflow.com/questions/8956992/ajax-pager-not-working-in-mvc4 – Gokul

5

Jeśli nie chcesz, żeby Twój tekst kodowany się, że tekst powinien być typu IHtmlString. Teksty ciągów są domyślnie kodowane.

W twoim przypadku,

Model.text = MvcHtmlString.Create("<p>Hi<br>hello!<br>you there</p>"); 

by rade, jak również.

1

Na stronie kontrolera

viewbag.msg="hello"; 

w html.cs brzytwa widzenia

@Html.Raw(viewbag.msg) 
+0

dzięki za edycję –