【问题标题】:Html.LabelFor is always displaying property name instead of valueHtml.LabelFor 始终显示属性名称而不是值
【发布时间】:2013-06-25 12:55:38
【问题描述】:

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

【问题讨论】:

    标签: asp.net-mvc-4 razor


    【解决方案1】:

    您希望标签与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)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 1970-01-01
      • 2021-07-23
      相关资源
      最近更新 更多