我相信这很简单,我似乎找不到正确的方法来显示模型列表中项目的显示名称。
我的简化模型:
public class PersonViewModel
{
public long ID { get; set; }
private List<PersonNameViewModel> names = new List<PersonNameViewModel>();
[Display(Name = "Names")]
public List<PersonNameViewModel> Names { get { return names; } set { names = value; } }
}
和名称:
public class PersonNameViewModel
{
public long ID { get; set; }
[Display(Name = "Set Primary")]
public bool IsPrimary { get; set; }
[Display(Name = "Full Name")]
public string FullName { get; set; }
}
现在,我想制作一个表以显示一个人的所有名称,并获取DisplayNameFor FullName。明显,
@Html.DisplayNameFor(model => model.Names.FullName);
不会工作,并且
@Html.DisplayNameFor(model => model.Names[0].FullName);
如果没有名称,它将中断。是否有“最佳方法”在此处获取显示名称?
List<PersonNameViewModel>
有一个而不是一个IEnumerable<PersonNameViewModel>
,那么使用表达式也是安全的model => model.Names.First().FullName
。它是否正确?也就是说,我认为我dummyModel
最喜欢这三个示例。否则,您可能需要在其中输入或粘贴几个属性model.Names[0].
。再说一次,也许您应该将该部分重构为接受List
or或IEnumerable
作为其模型的局部视图。