2012-04-02 23 views
12

Gần đây tôi đã tìm thấy một số mẫu mã với Asp.Net Mvc2 mà làm cho một số cuộc gọi ajax đến các hành động trong bộ điều khiển trả về ContentResult.ContentResult vs JsonResult với ajax

Tôi gặp phải một số sự cố trong khi cố chuyển đổi các mẫu này trong Mvc3 mà không thay đổi loại hành động trả về thành JsonResult.

Bất cứ ai có thể giải thích cho tôi sự khác nhau giữa ContentResult và JsonResult trong bối cảnh cuộc gọi ajax và trong trường hợp nào tôi có thể sử dụng một hoặc khác trong ngữ cảnh của cuộc gọi ajax? Tôi tìm thấy một bài tốt here giải thích chi tiết từng loại kết quả nhưng không đủ để trả lời câu hỏi của tôi.

Có sự cố đã biết với các cuộc gọi ContentResult và ajax trong Mvc3 không?

Cảm ơn bạn.

Trả lời

6

Nếu kết quả mã JavaScript của bạn được trả về là một phần nội dung như HTML, bạn nên trả về ContentResult hoặc PartialViewResult (nếu HTML được định dạng bằng cách sử dụng một phần xem).

Nếu kết quả là một đối tượng (đặc biệt là một đối tượng bạn muốn thao tác), thì đó phải là một JsonResult.

Dưới đây là một số ví dụ hay về cách làm việc với JSON: http://geekswithblogs.net/michelotti/archive/2008/06/28/mvc-json---jsonresult-and-jquery.aspx

Chúc may mắn!

+0

Wow, cảm ơn bạn @Roy Dictus vì câu trả lời nhanh. Trong trường hợp của tôi, tôi trả về một xml chuỗi được sử dụng để được gán trực tiếp vào nguồn dữ liệu của một đồ họa FusionChart. Bạn có nghĩ rằng trong trường hợp này, một JsonResult là tốt hơn so với một ContentResult? – Samuel

+0

Đây không phải là JSON và không phải là đối tượng được JavaScript xử lý vì vậy đây sẽ là nội dung. –