Я считаю, что это довольно просто, я просто не могу найти правильный способ показать отображаемое имя для элемента в списке в моей модели.
Моя упрощенная модель:
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качестве своей модели.