2013-03-21 10 views
35

Trên trang chính của tôi, tôi có mã @{Html.RenderPartial("_Partial1.cshtml");}, và trên một phần của tôi, tôi có một chuỗi HTML:Làm thế nào để kết xuất chuỗi HTML trong ASP.NET MVC?

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

Tôi muốn đầu ra abc với một số phong cách lỗi CSS, nhưng tôi thực sự đã <div class="error">abc</div> - tất nhiên , không có phong cách ở đó. Làm thế nào để làm cho nó được hiểu là mã nguồn HTML và không phải là một chuỗi?

+1

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

+0

Có gì sai với '

abc
'? – alex

Trả lời

92

Bạn có thể sử dụng phương thức Html.Raw() cho điều đó.

+5

Điều này thật tuyệt vời. Mẹo nếu bạn có tệp .html bạn muốn kết xuất thay vì sử dụng: @ Html.Raw (File.ReadAllText (Server.MapPath ())) – cgatian

+0

Đây là câu trả lời nguy hiểm. Xem https://en.wikipedia.org/wiki/Cross-site_scripting – Unw0und

+0

Giả sử tôi định nghĩa biến toàn cầu bằng dao cạo, sau đó sử dụng @ html.Raw (trên biến này vì tôi muốn xác định một số đánh dấu trong đó và hiển thị Có cách nào một người nào đó có thể thiết lập một giá trị cho một biến Razor từ url? Tôi chỉ muốn chắc chắn rằng đây không phải là dễ bị XSS thông qua tiêm URL .. Cảm ơn! – eaglei22