我认为MVC3可以默认将JSON数据绑定到模型。
但是这段代码
服务器:
[HttpPost]
public ActionResult Save(IList<int> IDs)
{
return null;
}
客户端:
$.post('@Url.Action("Save", "Users")', {'IDs' : [1, 2, 3]}, function() {});
不行。为什么??
答案 0 :(得分:2)
您需要将数据作为application / json发送:
$.ajax({
type: 'post',
url: '/Users/Save'
data: JSON.stringify({'IDs' : [1, 2, 3]}),
contentType: 'application/json; charset=utf-8',
success: function() {
// ...
}
});
答案 1 :(得分:1)
您的代码发送IDs[]=1&IDs[]=2&IDs[]=3
。
您需要发送IDs=1&IDs=2&IDs=3
。
设置traditional:true
参数以使用传统的参数序列化方式。
$.ajax({
url: '@Url.Action("Save", "Users")',
type: 'post',
data: {'IDs' : [1, 2, 3]},
traditional:true,
success: function() {
// ...
}
})
答案 2 :(得分:0)
这可能与我前一段时间遇到的问题相同。看看这个问题Post Array as JSON to MVC Controller
答案 3 :(得分:0)
您必须申请JSON.stringify
$.post('@Url.Action("Save", "Users")', JSON.stringify({'IDs' : [1, 2, 3]}), function() {});