我有一些复选框,我从它们那里获取值:
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 行。
有人可以告诉我如何实现吗?