0

我认为 MVC3 默认可以将 JSON 数据绑定到模型。

但是这段代码

服务器:

[HttpPost]
public ActionResult Save(IList<int> IDs)
{
    return null;
}

客户:

$.post('@Url.Action("Save", "Users")', {'IDs' : [1, 2, 3]}, function() {});

不工作。为什么 ??

4

4 回答 4

2

您需要将数据作为 application/json 发送:

$.ajax({
    type: 'post',
    url: '/Users/Save'
    data: JSON.stringify({'IDs' : [1, 2, 3]}),
    contentType: 'application/json; charset=utf-8',
    success: function() {
       // ...
    }
});
于 2012-09-04T13:52:38.803 回答
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() {
        // ...
    }
})
于 2012-09-04T16:28:32.987 回答
0

这可能与我前段时间遇到的问题相同。查看这个 SO 问题Post Array as JSON to MVC Controller

于 2012-09-04T12:46:17.653 回答
0

你必须申请JSON.stringify

$.post('@Url.Action("Save", "Users")', JSON.stringify({'IDs' : [1, 2, 3]}), function() {}); 
于 2012-09-04T12:57:15.867 回答