2009-01-01 23 views
5

Có cách nào để cấu hình những gì JSON serializer được sử dụng khi trở về JSON qua JsonResult trong bộ điều khiển:Điều khiển serializer trong JsonResult aka Json function trong ASP.Net MVC?

public ActionResult SomeJsonFunction() 
{ 
    var x = SomeModelCode.SomeModelFunction(); 
    return Json(x); 
} 

Dường như mặc định là JavaScriptSerializer. Tôi rất thích có thể sử dụng DataContractJsonSerializer, nhưng không thể tìm thấy bất kỳ tài liệu nào về cách thực hiện điều này.

Trả lời

5

Kiểm tra the source để xem cách triển khai JsonResult. Có nguồn gốc từ ActionResult với việc triển khai DataContractJsonSerializer của bạn. Ngay bây giờ sẽ không dễ sử dụng phương thức trợ giúp Json(), nhưng bạn có thể tạo phương thức trợ giúp của riêng bạn trong bộ điều khiển siêu lớp. Phương thức trợ giúp mới của bạn sẽ trả về dẫn xuất ActionResult mới của bạn.

+0

Đó chính xác là những gì tôi đã làm. Nó chỉ instantiates JavascriptSerializer, và là khá tầm thường để viết một ActionResult có nguồn gốc DataContractJsonResult. –

+0

Cảm ơn một nhóm! Điều này giải quyết được một vấn đề mà chúng tôi gặp phải với các tham chiếu vòng tròn và các nhược điểm khác của JavaScriptSerializer. – Doug

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