【发布时间】:2012-08-09 03:26:28
【问题描述】:
我需要在表单上显示几个复选框,用户可以随意检查。
所以我将复选框选项存储在数据库中。 (必填)
型号
public class Options
{
public int OptionsId {get; set;}
public string Option {get; set;}
}
在视图模型上,
IEnumerable<Options> listCheckBoxOptions {get; set;}// store list of options from database
Dictionary<string,bool> checkboxs {get; set;} // store if is check or not
因此,在视图中,我想将复选框值(真/假)存储在此复选框字典中。
@foreach (var x in Model.listCheckBoxOptions)
{
@Html.CheckBoxFor(m => m.checkboxs[x.Option])
@m.Option <br />
}
所以当我提交表单时...到达控制器时复选框为空。
知道为什么吗?
【问题讨论】:
-
对不起,我无法理解:视图显示正确,但是当您发布它时,您丢失了复选框值?
-
是的,我在 foreach 循环创建的视图上有 3 个复选框。因此,如果我选中两个框并发布到控制器。当我检查控制器上的复选框变量时,它为空。(根本没有)基本上我希望控制器像这样获得它 checkboxs[Option1] = true, checkboxs[Option2] = false , checkboxs[Option3] = true。取决于用户检查的复选框。我相信,它与我如何格式化 html 有关,所以我认为它与为复选框生成 html 的 foreach 循环有关。
标签: c# asp.net asp.net-mvc-3 view