У меня есть представление, которому нужны некоторые флажки, описывающие дни недели. Я хочу вернуться к контроллеру, которые выбраны. Я нашел некоторую помощь от различных поисков Google и т. Д., И вот что у меня есть.MVC Checkbox grouping
Раздел 1:
В контроллере:
vm.AllDays = Enum.GetValues(typeof(DayOfWeek)).Cast<DayOfWeek>().ToList();
В Вид:
@foreach (var day in Model.AllDays) {
<input type="checkbox" name="days" value="@day"/> <label>@day</label><br />
}
, а затем в моем почтовом обработчиком:
[HttpPost]
public ActionResult _AddEdit(SubscriptionDetailsModel vm, IEnumerable<string> days) {
//etc, etc, etc
}
Это работает, я получаю выбранные дни, входящие в параметр days. Тем не менее, мне стало любопытно и изменил атрибут «name» на флажках в поле в моей модели, что в конечном итоге я хочу, чтобы эти значения шли. Таким образом, моя модель для представления содержит объект, в котором есть список. Этот список - это коллекция, в которой мне бы хотелось, чтобы выбранные значения оказались в конце. Но вот соответствующий код.
Раздел 2
Модель сниппеты:
public class SubscriptionDetailsModel {
public CronTabModel CrontabModel { get; set; }
//...
}
public class CronTabModel {
public List<DayOfWeek> On { get; set; }
}
Контроллер:
[HttpPost]
public ActionResult _AddEdit(SubscriptionDetailsModel vm) {
//etc, etc, etc
}
И, конечно же, вид:
@foreach (var day in Model.AllDays) {
<input type="checkbox" name="On" value="@day"/> <label>@day</label><br />
}
Ed Это: причина, по которой я встречал путаные результаты, связана с опечаткой в другом месте моего представления.
Технически код в разделе 1 применим для моей ситуации, я могу провести синтаксический анализ строк и т. Д. Можно ли заполнить группу Checkbox из одной коллекции (Model.AllDays) и вернуться во вторую коллекцию (например, Model.CronTabModel.On)?