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 中的手机号码前添加默认(默认为浏览器国家)国家代码?