2013-03-07 30 views
14

Tôi có một Mô hình có nội dung thuộc tính chứa chuỗi HTML.Làm thế nào để ngăn chặn thoát html trong Razor (độc lập)?

var model = new { Content = ... } 
Razor.Parse(templateBody, model) 

Tôi làm cách nào để hiển thị chuỗi này bằng Dao cạo độc lập.

tôi đã cố gắng:

@(new HtmlString(Model.Content)) 

và cũng

@(HttpUtility.HtmlDecode(Model.Content)) 

Model.Content luôn làm cho HTML-thoát.

+2

Bạn đã thấy điều này SO câu trả lời? http://stackoverflow.com/a/4973743/195550 –

+2

'@ (new HtmlString (Model.Content))' nên thực hiện thủ thuật ... thử nó với: '@ ((IHtmlString) new HtmlString (Model.Content)) ' – nemesv

+0

Nó không hoạt động. Tôi không có HtmlHelper bên ngoài dự án web. – Exta

Trả lời

15

Trong thư viện RazorEngine đặc biệt "làm-không-escape-me" loại là RazorEngine.Text.IEncodedString. Sử dụng phương pháp helper đơn giản trên lớp cơ sở mẫu:

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

Để thuyết phục VS và Resharper cung cấp cho bạn IntelliSense add sau dòng ở phía trên cùng của mẫu:

@inherits RazorEngine.Templating.TemplateBase 
+0

Điều đó thực sự khá khó chịu vì nó không sử dụng IHtmlString như mong đợi. – rossisdead

32

này nên làm việc Html.Raw(Model.Content)

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