我已经为此苦苦挣扎了好几个小时,我似乎无法应用任何可行的逻辑。我有一个对象集合,让我们称它们为项目,它们有一个布尔属性来定义它们是否被包括在内稍后添加到篮子时。我遇到的问题是我想要一个列出这些项目的页面,并且每个项目旁边都有一个复选框,用于切换是否包含该项目。
我有这个:
@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?