5

在我的 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它时,它会显示价值,但不会在单击标签时选中复选框。

4

1 回答 1

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)
}
于 2013-06-25T04:55:38.850 回答