繁体   English   中英

JSON和ASP.NET MVC

[英]JSON and ASP.NET MVC

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

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

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

当然,Ajax调用的形式取决于您正在使用的库。 使用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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM