1

我有一些复选框,我从它们那里获取值:

var itemIds = [];

    $('input:checkbox.itemcheckbox:checked').each(function () {

      itemIds.push($(this).val());

    });

然后我采用这些值,然后创建一个表单:

    var form = $('<form/>', {
                        action: '@Url.Action("Process", "Items")',
                        method: 'GET',
                        css: { display: 'none' },
                        html: $('<input type="hidden" name="itemIds" value="' + itemIds + '"/>')
                    });
                    $('body').append(form);
                    form.submit();

在提交表单时,我的控制器上的方法是:

        [HttpGet]
        public FileStreamResult MoveToFinanceProcessing(IList<int> itemIds)
        {
            ...
        }

所以我以这种方式实现的原因是因为我正在尝试下载一个 zip 文件,这是我可以让它工作的唯一方法。

问题是它仅适用于选中的一个复选框。我无法让它适用于多个项目 ID。

我知道问题是这一行:

html: $('<input type="hidden" name="itemIds" value="' + itemIds + '"/>')

我可以通过以下方式手动获取多个参数以转到该方法:

html: $('<input type="hidden" name="itemIds[0]" value="3"/><input type="hidden" name="itemIds[1]" value="4"/>')

问题是我不能像这样从 itemIds 变量将它们放入 html 行。

有人可以告诉我如何实现吗?

4

1 回答 1

1

我想你应该试试这个

html: $('<input type="hidden" name="itemIds[]" value="' + itemIds + '"/>')

所以在控制器中你会得到一个数组。

于 2013-09-04T08:21:08.230 回答