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
14
A
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.
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);
}
Bạn chuyển các tham số cho MyAction như thế nào? – Picflight
Không định dạng trong nhận xét, nhưng ... $ .getJSON ("/ controllerName/MyAction", {id: 7}, callbackFunction); – BenB