Вот рабочий пример, к которому вы можете обратиться и внести изменения в соответствии с вашими потребностями.
Модель
public class CheckBoxKlassen
{
public int Id { get; set; }
public string Display { get; set; }
public bool IsChecked { get; set; }
}
public class CheckBoxViewModel
{
public IList<CheckBoxKlassen> CheckBoxKlassen { get; set; }
}
CheckBoxList.cshtml , используйте CSS , чтобы выровнять флажки по горизонтали, и измените ширину в процентах <li>
, чтобы настроить количество флажков в строке.
@model WebApplication1.Models.CheckBoxViewModel
<style>
.checkbox-grid li {
display: block;
float: left;
width: 20%;
}
</style>
<div class="row form-group">
<div class="col col-md-3">
<a data-toggle="collapse" href="#collapsKlassen">
<h5 class="mb-0">
Klassen <i class="fas fa-angle-down rotate-icon"></i>
</h5>
</a>
</div>
<div class="col-12 col-md-9 collapse" id="collapsKlassen" style="margin-right: 5px;">
<div class="form-check ">
<ul class="checkbox-grid">
@for (var i = 0; i < Model.CheckBoxKlassen.Count(); i++)
{
<li>
<input type="checkbox" asp-for="CheckBoxKlassen[i].IsChecked" value="@Model.CheckBoxKlassen[i].Id" />
<label >@Model.CheckBoxKlassen[i].Display</label>
</li>
}
</ul>
</div>
</div>
</div>
Контроллер , получить данные из списка проверки
public IActionResult CheckBoxList()
{
CheckBoxViewModel model = new CheckBoxViewModel()
{
CheckBoxKlassen = _context.CheckBoxKlassen.ToList()
};
return View(model);
}