JSON 和 ASP.NET MVC

Posted

技术标签:

【中文标题】JSON 和 ASP.NET MVC【英文标题】:JSON and ASP.NET MVC 【发布时间】:2010-09-11 04:45:34 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

public ActionResult MyAction()

    ... // Populate myObject
    return new JsonResult Data = myObject ;

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

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

callbackFunction 带有一个参数,该参数是来自 XHR 请求的数据。

【讨论】:

如何将参数传递给 MyAction? 评论中没有格式,但是... $.getJSON("/controllerName/MyAction", id: 7 , callbackFunction);【参考方案2】:

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

public ActionResult MyAction()

    return Json(new Data = myObject);

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

    
);

【讨论】:

【参考方案5】:

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

public JsonResult Foo()

    return Json("Secrets", JsonRequestBehavior.AllowGet);

【讨论】:

以上是关于JSON 和 ASP.NET MVC的主要内容,如果未能解决你的问题,请参考以下文章

MVC asp.net 从网络文件夹加载图像

如何在 MVC ASP.NET 中的手机号码前添加默认(默认为浏览器国家)国家代码?

配置 antiforgerytoken 单次使用 mvc asp.net

我如何根据 mvc asp.net 中的登录用户切换视图

在 MVC ASP.Net 中将插件添加到部分视图选择列表

使用 MEF 构建具有 n 层松散耦合的 MVC ASP.NET 应用程序