在我的MVC4项目中,我显示Checkbox
及其对应的Label
,以便在点击标签时,将检查相应的复选框。但是当我使用@Html.LabelFor
时,它显示属性名称而不是显示其值。此外,当我单击标签时,不会检查相应的复选框。这有什么不对?
@for (int i = 0; i < Model.AddOns.Count; i++)
{
@Html.CheckBoxFor(m => m.AddOns[i].IsActive)
@Html.LabelFor(m => m.AddOns[i].Name)
@Html.HiddenFor(m => m.AddOns[i].Id)
}
当我使用DisplayFor
时,它会显示值,但不会在点击标签时检查复选框。
答案 0 :(得分:5)
您希望标签与IsActive
的复选框相关联,但标签要与Name
相关联。所以LabelFor
应该引用IsActive
属性,标签字符串只是作为第二个参数传入。
我想你想要这个:
@for (int i = 0; i < Model.AddOns.Count; i++)
{
@Html.CheckBoxFor(m => m.AddOns[i].IsActive)
@Html.LabelFor(m => m.AddOns[i].IsActive, Model.AddOns[i].Name)
@Html.HiddenFor(m => m.AddOns[i].Id)
}