15

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

4

5 回答 5

24

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

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

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

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

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

于 2008-09-19T11:47:35.793 回答
10

根据您的语法偏好,以下内容也适用:

public ActionResult MyAction()
{
    return Json(new {Data = myObject});
}
于 2008-09-19T15:16:59.253 回答
2

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

   public JsonResult ASD()
    {
    string aaa = "Hi There is a sample Json";
    return Json(aaa);
    }
于 2017-08-08T09:22:14.677 回答
1

也可以 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) {

    }
});
于 2018-06-23T03:22:47.440 回答
0

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

public JsonResult Foo()
{
    return Json("Secrets", JsonRequestBehavior.AllowGet);
}
于 2014-06-04T06:05:15.580 回答