Я вважаю, що це досить просто, я просто не можу знайти правильний спосіб відобразити відображуване ім'я для елемента в списку в рамках своєї моделі.
Моя спрощена модель:
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
як свою модель.