Uważam, że jest to całkiem proste, po prostu nie mogę znaleźć właściwego sposobu wyświetlania nazwy pozycji na liście w moim modelu.
Mój uproszczony model:
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; } }
}
i nazwy:
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; }
}
Teraz chciałbym utworzyć tabelę, aby pokazać wszystkie imiona i nazwiska osób, i pobrać DisplayNameFor FullName. Oczywiście,
@Html.DisplayNameFor(model => model.Names.FullName);
nie zadziała i
@Html.DisplayNameFor(model => model.Names[0].FullName);
pęknie, jeśli nie będzie nazw. Czy istnieje „najlepszy sposób” uzyskania tutaj nazwy wyświetlanej?
List<PersonNameViewModel>
masz, to możeszIEnumerable<PersonNameViewModel>
również bezpiecznie użyć wyrażeniamodel => model.Names.First().FullName
. Czy to jest poprawne? To powiedziawszy, myślę, że najbardziej podoba mi siędummyModel
przykład z tych trzech. W przeciwnym razie możesz mieć kilka właściwości, w których musisz wpisać lub wkleićmodel.Names[0].
. Z drugiej strony, może powinieneś refaktoryzować przekrój do częściowego widoku, który akceptujeList
lubIEnumerable
jako model.