Html.LabelFor语句未显示为指定值

时间:2012-10-05 20:06:18

标签: asp.net-mvc form-helpers

我通过Html.LabelFor帮助器在foreach语句中显示GuarantorName。

但是,我没有得到预期的结果。

不是显示GuarantorName的实际值,而是简单地打印如下: Label值表示实际的字段名称是:GuarantorName,而我需要该字段的名称的实际值(如“Bill Yeager”),我在调试期间验证了它具有各种不同的名字。

在调试过程中,我可以在列表中看到我在集合中有实际的名字。

我该如何做到这一点?

以下是我在守则中的观点:

@foreach (var item in Model.Guarantors)
                {
                    <td>
                        @Html.CheckBoxFor(model => item.isChecked)
                        @Html.LabelFor(model => item.GuarantorName)
                    </td>
                }

如果我试试这个,我会收到以下错误:

@Html.DisplayFor(model => item.GuarantorFirstName + item.GuarantorLastName)

异常详细信息:System.InvalidOperationException:模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。

Source Error:


Line 95:                     <td>
Line 96:                         @Html.CheckBoxFor(model => item.isChecked)
Line 97:                         @Html.DisplayFor(model => item.GuarantorFirstName + item.GuarantorLastName)
Line 98:                     </td>
Line 99:                 }

2 个答案:

答案 0 :(得分:20)

LabelFor显示属性名称。您希望DisplayFor显示该字段的值。

@foreach (var item in Model.Guarantors)
                {
                    <td>
                        @Html.CheckBoxFor(model => item.isChecked)
                        @Html.DisplayFor(model => item.GuarantorName)
                    </td>
                }

答案 1 :(得分:0)

@foreach (var item in Model.Guarantors)
                {
                    <td>
                        @Html.CheckBoxFor(model => item.isChecked)
                        @Html.DisplayFor(model => item.GuarantorName)
                    </td>
                }


And also we can use when used IList<Model>

@for(int i=0;i<model.Guarantors.count();i++)
{
 <td>
                        @Html.CheckBoxFor(model =>model[i].isChecked)
                        @Html.DisplayFor(model => model[i].GuarantorName)
                    </td>
}