将数组发送到操作方法的问题

时间:2012-01-24 21:52:17

标签: asp.net-mvc jquery

我想将数组发送到我的action方法:

var items = { 'myIdList[]': [] };

        $(':checkbox').change(function () {            
            $(":checked").each(function () {
                items['myIdList[]'].push($(this).val());
            });
            $('#locationsCheckList').submit();
        });

        $('#locationsCheckList').submit(function () {
            $.ajax({
                url: this.action,
                type: this.method,
                traditional: true,
                data: { "myIdList": items }...

行动方法:

[HttpPost]
        public void GetLocations(int[] myIdList)...

项变量有数据,但是当我像这样传递它时,我得到null但是如果我改变了

data: { "myIdList": items }

data: { "myIdList": [1,2,3,4,5] }

它有效。 当我在浏览器中调试items变量时,我有值:

0: "1"
1: "2"
2: "3"

我不能传递数组,我不知道为什么,如果它工作硬编码?

2 个答案:

答案 0 :(得分:1)

如果你使用一个简单的数组,类似于你工作的例子:

var items = [];
// your jQuery loop
items.push($(this).val());
// and so on
data: { "myIdList": items }...

答案 1 :(得分:0)

您的AJAX通话需要包括:

dataType: "json",