我通过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: }
答案 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>
}