У меня строгое представление типа
List<List<MyViewModelClass>>
Внешний список всегда будет иметь два списка List<MyViewModelClass>
. Для каждого из двух внешних списков я хочу отобразить группу флажков. Каждый набор может иметь произвольное количество вариантов выбора.
Класс модели моего вида выглядит примерно так:
public class MyViewModelClass
{
public Area Area { get; set; }
public bool IsGeneric { get; set; }
public string Code { get; set; }
public bool IsChecked { get; set; }
}
Таким образом, окончательный вид будет выглядеть примерно так:
Пожалуйста, выберите подходящие варианты:
Первый набор вариантов:
- x Вариант 1
- x Вариант 2
- x Вариант 3
- и т.д.
Второй набор вариантов:
- x Второй вариант 1
- x Второй вариант 2
- x Второй вариант 3
- x Второй вариант 4
- и т.д.
Флажки должны отображать MyViewModelClass.Area.Name
, а их значение должно быть связано с MyViewModelClass.Area.Id
. Проверенное состояние, конечно, связано с MyViewModel.IsChecked
.
Вопрос
Интересно, как мне использовать помощник Html.CheckBox()
или Html.CheckBoxFor()
для отображения моих флажков? Я должен вернуть эти значения обратно на сервер при обратной передаче.
Мне бы хотелось, чтобы действие моего контроллера было одним из следующих:
public ActionResult ConsumeSelections(List<List<MyViewModelClass>> data)
{
// process data
}
public ActionResult ConsumeSelections(List<MyViewModelClass> first, List<MyViewModelClass> second)
{
// process data
}
Если все будет проще, я мог бы создать отдельный тип модели вида, например:
public class Options
{
public List<MyViewModelClass> First { get; set; }
public List<MyViewModelClass> Second { get; set; }
}
А также изменив мою первую версию действия контроллера на:
public ActionResult ConsumeSelections(Options data)
{
// process data
}