Я пытаюсь создать представление, содержащее список флажков, который динамически создается из базы данных, а затем получить список выбранных, когда форма отправляется обратно.
Моя модель EF содержит класс:
public class ItemIWouldLikeACheckboxFor {
public int Id { get; set; }
public string Description { get; set; }
}
У меня есть модель представления, которая содержит список из них:
public class PageViewModel {
// various other properties
public List<ItemIWouldLikeACheckboxFor> checkboxList { get; set; }
}
Мой метод get get:
public ActionResult Create() {
var viewModel = new PageViewModel();
viewModel.checkboxList = db.ItemIWouldLikeACheckboxFors.ToList();
return View(viewModel);
}
Мой взгляд:
<% using (Html.BeginForm()) { %>
<%-- other stuff here... %>
<% foreach (var item in checkboxList) { %>
<%: Html.CheckBox( <!-- what exactly ?????? -->) %>
<% } %>
<%-- other stuff here...%>
<input type="submit" />
<% } %>
Мой метод поста контроллера:
[HttpPost]
public ActionResult Create(PageViewModel viewModel) {
// do stuff with other fields
// I would like to do something like:
foreach (var item in selectedCheckBoxes) {
// do stuff
}
}
Я не могу заставить его работать. Мои основные вопросы смешаны в виде комментариев в фрагментах кода, но резюмируем:
- В порядке ли моя модель зрения? (мне нужно добавить что-нибудь, чтобы захватить выбранные, а не просто список для отображения?)
- Что именно я должен добавить в представление для отображения каждого флажка?
- Как получить доступ к выбранным флажкам в контроллере после публикации?