我对类型有很强的类型观
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
}