4

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

2 回答 2

22

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

@foreach (var item in Model.Guarantors)
                {
                    <td>
                        @Html.CheckBoxFor(model => item.isChecked)
                        @Html.DisplayFor(model => item.GuarantorName)
                    </td>
                }
于 2012-10-05T20:19:27.507 回答
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>
}
于 2014-01-30T06:20:23.400 回答