显示多列复选框列表

我目前正在显示我的复选框列表,如下所示:

foreach (var employee in Model.Employees) { @Html.CheckBox(employee.Name);
}

如果你想要一个长列的复选框,这很好,但是我的列表变长,所以我想在2或3列中显示它。

是否有捷径可寻? 我知道我可以创建一个表,然后为一个列的Employees的前半部分放入一个for循环,然后在另一个列中为另一半的Employees循环另一个for循环。 但这似乎是如此原始,必须有一种更简单,更清洁的方式。

我会使用包含您的复选框的2或3个html列表,每个列表紧跟在标记中的下一个列表之后出现,并使用css将每个列表浮动到左侧。

如果复选框超过10个,此示例将复选框分为2个列表:

CSS:

 .multi-list { float: left; padding-right: 50px; } .clear { clear: both; } 

带Razor的HTML标记:

 @{ if (Model != null) { int itemCount = 0; 
    @foreach (var item in Model) { itemCount++;
  • @Html.DisplayFor(modelItem => item.Name) @Html.CheckBoxFor(modelItem => item.Active)
  • if (Model.Count() > 10 && itemCount == (int)(Model.Count() / 2)) { @Html.Raw("
    "); } }
} }