【发布时间】:2010-03-08 09:43:55
【问题描述】:
我对类型有一个强类型视图
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
}
【问题讨论】:
标签: asp.net-mvc-2 viewmodel model-binding generic-list