2010-01-26 37 views
5

Tôi phải trả lại một JsonResult, chứa một số HTML.JsonResult với mã hóa Html

như vậy, một cái gì đó như:

return Json(new { id="guid", html="<param id='id'/>" }); 

Tuy nhiên, khi tôi nhận được kết quả trở lại, các dấu ngoặc nhọn được mã hóa như u003E, u003C , vv ..

tôi đã cố gắng mã hóa khác nhau nhưng có thể' t hình này ra. Bất cứ ai chạy vào điều này?

Tôi có thể trả về một nội dung (chuỗi) với Response.ContentType = "application/json" mà không có vấn đề này, nhưng đối tượng json của tôi khá phức tạp và tôi muốn trả lại JsonResult nếu có thể.

Cảm ơn!

+0

Phần "Nội dung (chuỗi) với Response.ContentType =" application/json "" là vàng nguyên chất. Nó sẽ cứu tôi vài giờ nếu thấy trước đó. Cảm ơn! –

Trả lời

1

Điều này được thực hiện để ngăn chặn các cuộc tấn công XSS tiềm ẩn bằng cách chèn các thẻ HTML độc hại vào dữ liệu của bạn. Nó không nên có một sự khác biệt chức năng cho bạn. "\uxxxx" đại diện cho cùng một ký tự như phiên bản chưa được mã hóa.

2

Đó chỉ là Unicode. Khi bạn hiển thị nó trong trình duyệt, nó sẽ trông ổn (nếu trình duyệt là ứng dụng khách của bạn).