2013-08-29 22 views
6

Tôi đang sử dụng JQM-DateBox - mà cần đánh dấu Razor sau:ASP.Net C# Razor thấy HTML mã hóa thay vì html liệu

@Html.TextBoxFor(m => m.From, new { @name = "mydate", @id = "mydate", 
@data_role = "datebox", 
@data_options = "{'mode':'flipbox', 'dateFormat':'dd/mm/YYYY' ,'useNewStyle':true} ") 

Tuy nhiên, điều này ám như:

<input data-options=" {&#39;mode&#39;:&#39;flipbox&#39;, &#39;dateFormat&#39;:&#39;dd/mm/YYYY&#39; ,&#39;useNewStyle&#39;:true} " 
data-role="datebox" id="mydate" 
name="From" type="text" value="29/08/2013 00:00:00" /> 

Tôi biết bạn có thể sử dụng html.raw - nhưng làm thế nào để bạn sử dụng nó trong một helper?

tôi cần phải hiển thị:

{'mode':

... thay vì ...

{&#39;mode&#39;:

+0

Mã bạn hiển thị làm đầu vào không tạo ra html mà bạn hiển thị dưới dạng đầu ra. Có lỗi dán sao chép không? 'TextBoxFor' thiếu' chế độ' bên trong '@ data_options'. –

+0

bạn đúng - xin lỗi, sao chép lỗi dán - sửa lỗi ở trên – Mark

Trả lời

10

Hãy thử @Html.Raw(HttpUtility.HtmlDecode(@Html.TextBoxFor(...).ToHtmlString())).

+0

Lưu ý nếu bạn đã từng sử dụng '" 'trong một thuộc tính, điều này sẽ phá hủy thẻ. –

3

TextBoxFor sử dụng TagBuilder đó là cuối cùng chịu trách nhiệm chuyển ' để &#39; (vì nó sử dụng MergeAttributes với htmlAttributes tham số truyền cho các helper).

Thay vì dán câu trả lời, hãy kiểm tra Stop the tag builder escaping single quotes ASP.NET MVC 2

Ngoài ra, đây không hẳn là câu hỏi chính xác như nhau, nhưng sau đó nó được. Tôi sẽ để nó cho người khác nếu họ muốn đóng nó và trích dẫn tài liệu tham khảo ở trên.

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