【发布时间】:2015-02-02 15:18:11
【问题描述】:
这个问题已经被问过很多次了,但我找到的解决方案似乎都没有奏效。让我觉得这可能是一个新问题,并且可能是 ASP.NET MVC 3 特有的问题。
我正在使用 JQuery Ajax 对 ASP.NET MVC 3 控制器进行简单调用。像这样
var addressInfo = {
Address1: "423 Judy Road",
Address2: "1001",
City: "New York",
State: "NY",
ZipCode: "10301",
Country: "USA"
};
$.ajax({
url: '/home/check',
type: 'POST',
data: JSON.stringify(addressInfo),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function () {
alert("success");
},
error: function () {
alert("error");
}
});
控制器长这样
[HttpPost]
public ActionResult Check(AddressInfo addressInfo)
{
// Do something and return Json(something)
}
这不起作用,尽管它应该基于 Scottgu 的 post 的“JavaScript 和 AJAX 改进”部分
我已经尝试了许多不同的变体,例如:
var args = new Object();
args.addressInfo = {
Address1: "423 Judy Road",
Address2: "1001",
City: "New York",
State: "NY",
ZipCode: "10301",
Country: "USA"
};
$.ajax({
url: '/home/check',
type: 'POST',
data: JSON.stringify(args),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function () {
alert("success");
},
error: function () {
alert("error");
}
});
然后以上两个都直接用JSON对象:
$.ajax({
url: '/home/check',
type: 'POST',
data: args,
success: function () {
alert("success");
},
error: function () {
alert("error");
}
});
没有工作。如果我只有一个传递给控制器的字符串,那就可以了。但是一旦我引入一个对象,我就无法让它工作。
任何人都知道可能是什么问题。
非常感谢您对此进行调查!
【问题讨论】:
标签: jquery ajax asp.net-mvc-3