Creo que esto es bastante simple, simplemente parece que no puedo encontrar la manera correcta de mostrar el nombre para mostrar de un elemento dentro de una lista dentro de mi modelo.
Mi modelo simplificado:
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; } }
}
y nombres:
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; }
}
Ahora me gustaría hacer una tabla para mostrar todos los nombres de una persona y obtener DisplayNameFor FullName. Obviamente,
@Html.DisplayNameFor(model => model.Names.FullName);
no funcionaría, y
@Html.DisplayNameFor(model => model.Names[0].FullName);
se romperá si no hay nombres. ¿Existe una "mejor manera" de obtener el nombre para mostrar aquí?
List<PersonNameViewModel>
tiene unIEnumerable<PersonNameViewModel>
, entonces también es seguro usar la expresiónmodel => model.Names.First().FullName
. ¿Es esto correcto? Dicho esto, creo que me gusta eldummyModel
mejor ejemplo de los tres. De lo contrario, podría tener varias propiedades en las que deba escribir o pegarmodel.Names[0].
. Por otra parte, tal vez debería refactorizar la sección a una vista parcial que acepteList
oIEnumerable
como modelo.