我有一个复杂类型的模型,即用户/地址/地址列表
public class User{ public List<Address> Addresses{get;set;} }
在我的视图中我显示了这个
<fieldset><legend>@Html.DisplayNameFor(model=>model.Addresses)</legend> <table> <tr> <th> @Html.DisplayNameFor(m => Model.Addresses.Street) </th> <th> @Html.DisplayNameFor(model => model.Addresses.City) </th> <th> @Html.DisplayNameFor(model => model.Addresses.State) </th> </tr> @foreach (var item in Model.Addresses) { <tr> <td> @Html.DisplayFor(m => item.Street) </td> <td> @Html.DisplayFor(m => item.City) </td> <td> @Html.DisplayFor(m => item.State) </td> </tr> } </table></fieldset>
DisplayNameFor Street / City / State不起作用.
在子对象上获取DisplayNameFor的正确方法是什么?
TIA
Ĵ
解决方法
我变了
@Html.DisplayNameFor(m => Model.Addresses.Street)
至
@Html.DisplayNameFor(m => Model.Addresses.FirstOrDefault().Street)
不要使用@ Html.DisplayNameFor(m => Model.Addresses [0] .Street)因为如果你需要编辑第一行,你将无法这样做.
现在一切都按预期工作了.