私はこれに何時間も取り組んできましたが、機能するロジックを適用できないようです。オブジェクトのコレクションがあり、それらをアイテムと呼びましょう。それらには、それらが含まれるかどうかを定義するブールプロパティがあります後でバスケットに追加するとき。私が抱えている問題は、これらのアイテムをリストし、各アイテムの横にチェックボックスがあり、アイテムを含めるかどうかを切り替えるページが必要なことです。
私はこれを持っています:
@using(Ajax.BeginForm("UpdateItems", "Controller", null,
new AjaxOptions { HttpMethod = "Post"}, new { id = "UpdateItemsForm" })
{
@foreach(var item in collection)
{
@Html.CheckBox("itemIncluded", item.Included)
}
}
<script>
$("#UpdateItemsForm").change(function ()
{
$(this).submit();
});
</script>
コントローラーで私が持っている
public JsonResult UpdateItems(bool[] itemIncluded)
{
//Do Something unimportant
}
問題は、コントローラーで必要なブール値の配列を取得していますが、配列の長さが一貫していないことです。チェックボックスを変更すると、チェックされているボックスの数に応じて n 要素の配列を受け取ります。たとえば、2/4 ボックスをチェックすると、6 つのブール値の配列が得られます。この配列には、チェックされたボックスの true 要素と false 要素が含まれます。配列のサイズを強制する方法はありますか?