Ich glaube, das ist ziemlich einfach. Ich kann einfach nicht den richtigen Weg finden, um den Anzeigenamen für ein Element in einer Liste in meinem Modell anzuzeigen.
Mein vereinfachtes Modell:
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; } }
}
und Namen:
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; }
}
Jetzt möchte ich eine Tabelle erstellen, in der alle Namen einer Person angezeigt werden, und den Anzeigenamen für den vollständigen Namen erhalten. Offensichtlich,
@Html.DisplayNameFor(model => model.Names.FullName);
würde nicht funktionieren, und
@Html.DisplayNameFor(model => model.Names[0].FullName);
wird brechen, wenn es keine Namen gibt. Gibt es hier einen "besten Weg", um den Anzeigenamen zu erhalten?
List<PersonNameViewModel>
haben . Ist das richtig? Trotzdem denke ich, dass mir das Beispiel am besten gefällt . Andernfalls könnten Sie mehrere Eigenschaften haben, die Sie eingeben oder einfügen müssen . Andererseits sollten Sie den Abschnitt möglicherweise in eine Teilansicht umgestalten, die das oder als Modell akzeptiert .IEnumerable<PersonNameViewModel>
model => model.Names.First().FullName
dummyModel
model.Names[0].
List
IEnumerable