2012-01-29 84 views
17

Tôi đang trong quá trình nâng cấp dự án C# MVC2 thành C# MVC4.Giải mã mã hóa HTML C# MVC4

Dưới đây là kịch bản trong MVC2

Input string (từ cơ sở dữ liệu)

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

Output (render trong giao diện) render sử dụng

<%=Model.text %> 

Hi 
hello! 
you there 

Đây là kịch bản trong MVC4

chuỗi đầu vào (từ cơ sở dữ liệu)

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

Output (render trong giao diện) render sử dụng

@Model.text 

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

tôi đã cố gắng

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

Không có gì giúp ...

Tôi gặp sự cố tương tự trong MVC4 asked here (kết quả ajax được hiển thị bằng thẻ html không phải là html thực tế)

Một số cài đặt của tôi có gây rắc rối cho tôi không ??? hoặc là một cái gì đó để làm với HTML 5 hoặc tôi thiếu bất cứ điều gì trong việc sử dụng MVC4. Xin hãy giúp !!

Trả lời

35

này nên làm như lừa:

@Html.Raw(Model.text) 
+1

Cảm ơn Justin !! đã giúp .. Điều này cũng giải quyết được vấn đề trong liên kết http://stackoverflow.com/questions/8956992/ajax-pager-not-working-in-mvc4 – Gokul

5

Nếu bạn không muốn văn bản của bạn được mã hóa, văn bản cần được loại IHtmlString. Văn bản chuỗi được mã hóa theo mặc định.

Trong trường hợp của bạn,

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

sẽ làm các trick là tốt.

1

Trong điều khiển bên

viewbag.msg="hello"; 

trong giao diện dao cạo html.cs

@Html.Raw(viewbag.msg) 
+0

cảm ơn bạn đã chỉnh sửa –

Các vấn đề liên quan