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