2013-05-08 39 views
19

Tôi muốn viết một cái gì đó như:Tôi có thể viết nội tuyến nếu có nội dung HTML không?

@(checkCondition ? "<span class='label'>Right!</span>" : "") 

Nhưng nó được hiển thị mã nguồn thay vì HTML, có một cách dễ dàng để làm được điều này?

Cảm ơn bạn!

+1

http://stackoverflow.com/questions/ 4091831/cách sử dụng-ternary-operator-in-razor-specific-on-html-attributes – billyonecan

Trả lời

50

Bạn có thể sử dụng phương pháp @Html.Raw(mystring) như thế này:

@(checkCondition ? Html.Raw("<span class='label'>Right!</span>") : Html.Raw("")) 
+0

Cảm ơn bạn, tôi đã thử nhưng tôi nhận được lỗi chuyển đổi tiềm ẩn giữa'System.Web.IHtmlString 'và' string ', có vẻ như Tôi phải sử dụng standar Nếu cho trường hợp này. – Santiago

+1

Sử dụng phương thức 'Nguyên' cho cả hai chuỗi như trên. Tôi đã chỉnh sửa câu trả lời của mình. –

+1

Ahhhhh .... bạn nói đúng !! Cảm ơn bạn!!! – Santiago

20

Bạn thậm chí có thể nhiều hơn nữa súc tích (cấp khó khăn hơn để đọc) với điều này:

@Html.Raw(checkCondition ? "<span class='label'>Right!</span>": string.Empty) 
Các vấn đề liên quan