Credo che sia piuttosto semplice, non riesco a trovare il modo giusto per mostrare il nome visualizzato per un elemento all'interno di un elenco all'interno del mio modello.
Il mio modello semplificato:
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; } }
}
e nomi:
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; }
}
Ora vorrei creare una tabella per mostrare tutti i nomi di una persona e ottenere DisplayNameFor FullName. Ovviamente,
@Html.DisplayNameFor(model => model.Names.FullName);
non funzionerebbe, e
@Html.DisplayNameFor(model => model.Names[0].FullName);
si romperà se non ci sono nomi. Esiste un "modo migliore" per ottenere il nome visualizzato qui?
List<PersonNameViewModel>
hai unIEnumerable<PersonNameViewModel>
, allora è anche sicuro usare l'espressionemodel => model.Names.First().FullName
. È corretto? Detto questo, penso che mi piaccia l'dummyModel
esempio migliore dei tre. Altrimenti, potresti avere diverse proprietà in cui devi digitare o incollaremodel.Names[0].
. Poi di nuovo, forse dovresti rifattorizzare la sezione in una vista parziale che accettaList
oIEnumerable
come modello.