いくつかのチェックボックスがあり、それらから値を取得しています:
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 ファイルをダウンロードしようとしていて、これが機能させる唯一の方法だからです。
問題は、1 つのチェックボックスがオンになっている場合にのみ機能することです。複数のアイテム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 行にそれらを取得できないことです。
誰かがこれを実装する方法を教えてもらえますか?