JSON和ASP.NET MVC

如何通过AJAX调用使用ASP.NET MVC将序列化的JSON对象返回给客户端?

从控制器你可以返回一个JsonResult:

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

当然,Ajax调用的forms取决于您正在使用的库。 使用jQuery会是这样的:

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

其中callbackFunction接受一个参数,该参数是来自XHR请求的数据。

根据您的语法首选项,以下内容也适用:

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

这是用于理解的小代码块,我们如何在MVC控制器中使用JsonResults。

  public JsonResult ASD() { string aaa = "Hi There is a sample Json"; return Json(aaa); } 

你也可以使用System.Web.Script.Serialization; 如下

 using System.Web.Script.Serialization; public ActionResult MyAction(string myParam) { return new JavaScriptSerializer().Serialize(myObject); } 

阿贾克斯

 $.ajax({ type: 'POST', url: '@Url.Action("MyAction","MyMethod")', dataType: 'json', contentType: "application/json; charset=utf-8", data: JSON.stringify({ "myParam": "your data" }), success: function(data) { console.log(data) }, error: function (request, status, error) { } }); 

如果您需要发送JSON以响应GET,则需要使用JsonRequestBehavior.AllowGet显式允许该行为。

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