我在我的视图中尝试了一个ajax帖子,如下所示(使用jQuery)。
完整解决方案Here.
$(document).ready(function () {
var kk = {
Address1: "423 Judy Road",
Address2: "1001",
City: "New York",
State: "NY",
ZipCode: "10301",
Country: "USA"
};
console.log(JSON.stringify(kk));
$.ajax({
url: 'Check',
type: 'POST',
data: JSON.stringify(kk),
dataType:"json",
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data.success);
},
error: function () {
alert("error");
}
});
});
并在控制器中接收它(该方法始终被调用)
public ActionResult Check(AddressInfo addressInfo)
{
return Json(new { success = true });
}
模型here,
但是当我尝试访问(断点检查)对象的属性(AddressInfo
)时,它总是显示null
值。我试过没有字符串化和字符串化。我现在正在学习MVC和初学者。请帮忙
答案 0 :(得分:1)
请尝试以下代码:
return this.Json(new { success = true }, JsonRequestBehavior.AllowGet);
如果这不起作用,只需将请求参数从AddressInfo
更改为控制器端的String。
这绝对有用!!
答案 1 :(得分:1)
这不起作用的原因是因为您使用ASP.NET MVC 2并且直到ASP.NET MVC 3才添加对JSON模型绑定的支持。
您可以将该功能添加到ASP.NET MVC 2中。 Phil Haack有一篇文章描述了这一点,最后给出了示例代码的链接:http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action-method-argument.aspx
答案 2 :(得分:0)
尝试以querystring方式传递数据:
$(document).ready(function () {
var data = "Address1=423 Judy Road&Address2=1001&City=New York&State=NY&ZipCode=10301&Country=USA";
$.ajax({
url: 'Check',
type: 'POST',
data: data,
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data.success);
},
error: function () {
alert("error");
}
});
});
答案 3 :(得分:0)
在dataType
中添加json
Ajax
并在addressInfo
中传递data parameter
,
$.ajax({
url: 'Check',
type: 'POST',
datatype:'json',
data: {addressInfo:kk},
success:function(data){
....
....
});