2008-09-19 41 views
14

Làm thế nào để bạn trả về một đối tượng JSON được tuần tự hóa ở phía máy khách bằng cách sử dụng ASP.NET MVC thông qua một cuộc gọi AJAX?JSON và ASP.NET MVC

Trả lời

22

Từ bộ điều khiển bạn chỉ có thể trả về một JsonResult:

public ActionResult MyAction() 
{ 
    ... // Populate myObject 
    return new JsonResult{ Data = myObject }; 
} 

Hình thức của cuộc gọi Ajax sẽ phụ thuộc vào thư viện bạn đang sử dụng, tất nhiên. Sử dụng jQuery nó sẽ là một cái gì đó như:

$.getJSON("/controllerName/MyAction", callbackFunction); 

nơi callbackFunction mất một tham số đó là các dữ liệu từ các yêu cầu XHR.

+0

Bạn chuyển các tham số cho MyAction như thế nào? – Picflight

+0

Không định dạng trong nhận xét, nhưng ... $ .getJSON ("/ controllerName/MyAction", {id: 7}, callbackFunction); – BenB

10

Tùy thuộc vào sở thích cú pháp của bạn, sau đây cũng làm việc:

public ActionResult MyAction() 
{ 
    return Json(new {Data = myObject}); 
} 
0

Nếu bạn cần phải gửi JSON để đáp ứng với một GET, bạn sẽ cần phải cho phép một cách rõ ràng hành vi bằng cách sử dụng JsonRequestBehavior.AllowGet.

public JsonResult Foo() 
{ 
    return Json("Secrets", JsonRequestBehavior.AllowGet); 
} 
1

Đây là khối mã nhỏ để hiểu, cách chúng tôi có thể sử dụng JsonResults trong bộ điều khiển MVC.

public JsonResult ASD() 
    { 
    string aaa = "Hi There is a sample Json"; 
    return Json(aaa); 
    } 
Các vấn đề liên quan