이것은 매우 간단하다고 생각합니다. 모델 내의 목록에있는 항목의 표시 이름을 표시하는 올바른 방법을 찾지 못하는 것 같습니다.
내 단순화 된 모델 :
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
또는IEnumerable
그 모델을.