public class BaseModel
{
public Guid ID;
public string Name;
public List<BaseModelChildModel> BaseModelChildModels;
}
public class BaseModelChildModel
{
public double Value;
public string Notes;
public BaseModel BaseModel;
public ChildModel ChildModel;
}
public class ChildModel
{
public Guid ID;
public string Name;
public int Productivity;
public bool IsActive;
}
在cshtml中,
@model BaseModel
<thead>
<tr>
<th>@Html.DisplayNameFor()</th>
</tr>
</thead>
如果@Html.DisplayNameFor()
或ChildModel.Name
显示ChildModel.IsActive
包含0个元素大约一半时间的正确名称,该怎么办?BaseModel.BaseModelChildModels
(通过local.resx
获取的正确显示名称,如果它有所不同)
答案 0 :(得分:2)
如果您可以将属性更改为IEnumerable<BaseModelChildModel>
,那么您应该能够:
@Html.DisplayNameFor(m => m.BaseModelChildModels.Foo)
否则,您可以索引该属性。这里的表达式不是每次实际访问的,它只被评估为获取显示名称。因此,如果列表中没有项目,则索引属性不会导致错误:
@Html.DisplayNameFor(m => m.BaseModelChildModels[0].Foo)