Jquery 将json数组发送到MVC4控制器操作的正确方法

Jquery 将json数组发送到MVC4控制器操作的正确方法,jquery,arrays,json,asp.net-mvc-4,fancybox-2,Jquery,Arrays,Json,Asp.net Mvc 4,Fancybox 2,我有一个控制器: public virtual ActionResult CreateMultiple(int[] ids) { ... } 在JS中,我选中所有复选框,将其转换为int数组: var params = []; $("input:checkbox:checked.checkedPersons").each(function () { params.push($(this).val()); }); $("a.modalFormLink").attr("data-params",

我有一个控制器:

public virtual ActionResult CreateMultiple(int[] ids)
{
...
}
在JS中,我选中所有复选框,将其转换为int数组:

var params = [];
$("input:checkbox:checked.checkedPersons").each(function () { params.push($(this).val()); });
$("a.modalFormLink").attr("data-params", JSON.stringify( { "ids": params }));
然后,一旦我点击那个链接,我要做的就是显示一个带有视图的Fancybox。。。在Fancybox href中发送
数据参数
属性vía queryString的值:

...
options.params = JSON.parse($(this).attr("data-params"));
var query = $.toQueryString(options.params);
...
问题:好吧,如果我只选中了一个复选框,这是可行的。如果我有多个绑定器,绑定器将失败,参数为null

数据参数属性的内容是:

{"ids":["4","6"]}
当我只有一个值(并且有效)时,内容是:

{"ids":["4"]}

我假设您正在使用ajax进行此调用

如果是,请尝试添加

traditional: true
在ajax调用中选择您的选项

$.ajax({
url : 'someurl.com',
traditional:true,
data : someData
});

问题与我将参数传递给ajax的方式更相关。。。我们使用querystring而不是数据参数。QueryString可以很好地处理单个值。。。但不适用于阵列。谢谢