2015-04-26 22 views
0

我有一个多对多的关系,我已经实现并完美工作,现在我想在可以插入数据的某个实体的“插入”页面上有一组复选框在中间表中。复选框包含值但不包含标题

我有一个视图模型,它包含以下类的数组:

class CategoryManager { 
    public int id { get; set; } 
    public string Title { get; set; } 
    public bool Checked { get; set; } 
} 

在视图,我有以下行创建的复选框为每个阵列成员:

for (int i = 0; i < Model.categories.Count(); i++) 
    { 
     @Html.CheckBoxFor(m => m.categories[i].Checked)<i>&nbsp</i> 
     @Model.categories[i].Title <br/> 
    } 

现在,我已经注意到,当页面被提交并且整个ViewModel被发送回控制器时,在“CategoryManager”的数组中,每个实例都有该ID并且“Checked”正确地通过(取决于不管用户是否标记了复选框),但是,所有的“标题”都是NULL。

我知道这应该是我缺少一个很基本的东西,但我是一个牛逼;)

非常感谢你提前!

回答

1

你不生成财产Title(或ID所以不知道你如何张贴回来)的控制。添加一个隐藏的输入为Title财产

for (int i = 0; i < Model.categories.Count; i++) 
{ 
    @Html.CheckBoxFor(m => m.categories[i].Checked) 
    @Html.LabelFor(m => m.categories[i].Checked, "Model.categories[i].Title") 
    @Html.HiddenFor(m => m.categories[i].ID) 
    @Html.HiddenFor(m => m.categories[i].ID) 
} 

注意使用LabelFor()创建与复选框关联的标签。