复选框和模型绑定的动态列表
我正在尝试创建一个视图,其中包含从数据库动态创建的复选框列表,然后在回发表单时检索所选复选框的列表。
我的EF模型包含一个类:
public class ItemIWouldLikeACheckboxFor { public int Id { get; set; } public string Description { get; set; } }
我有一个包含以下列表的视图模型:
public class PageViewModel { // various other properties public List checkboxList { get; set; } }
我的控制器获取方法:
public ActionResult Create() { var viewModel = new PageViewModel(); viewModel.checkboxList = db.ItemIWouldLikeACheckboxFors.ToList(); return View(viewModel); }
我的看法:
<%: Html.CheckBox( ) %>
我的控制器发布方法:
[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 } }
我似乎无法让它发挥作用。 我的基本问题在代码片段中作为注释混合在一起,但回顾一下:
- 我的视图模型好吗? (我是否需要添加任何内容来捕获选定的内容,而不是仅显示要显示的列表?)
- 我应该在视图中放置什么来呈现每个复选框?
- 发布后如何访问控制器中的所选复选框?
你见过: http : //haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx ?
我们基本上编写了自己的控件来呈现HTML
-
-
模型看起来不错,我们写了一个自定义帮助器,所以我们的aspx页面看起来像:
<%= Html.DropDownFor(m=>m.products) %>
如果你关注phil haacks post,你的模型应该自动绑定在你的控制器中。
这个问题也是一个很好的答案: CheckBoxList多项选择:模型绑定难度
它有一个使用自定义编辑器模板的解决方案。
- 如何从Request.Form获取所有元素值,而无需使用.GetValues(“ElementIdName”)确切指定哪个元素值
- 使用AutoMoq创建控制器时,Fixture.CreateAnonymous方法使用错误(AutoFixture)杀死测试运行程序进程
- 扩展ASP.NET MVC 2 Model Binder以适用于0,1个布尔值
- 派生的RequiredAttribute不起作用
- DataType与UiHint
- ASP.Net MVC 2.0:EditorFor通过属性设置名称
- ASP.NET MVC2父控制器不重定向
- 尝试将新的EF4实体附加到ObjectContext,同时已附加其实体集合实体时出现问题
- MVC 2 – 将枚举传递给CheckBoxFor