Saya yakin ini cukup sederhana, saya sepertinya tidak dapat menemukan cara yang tepat untuk menampilkan nama tampilan item dalam daftar dalam model saya.
Model saya yang disederhanakan:
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; } }
}
dan Nama:
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; }
}
Sekarang saya ingin membuat tabel untuk menampilkan semua nama seseorang, dan mendapatkan DisplayNameFor FullName. Jelas,
@Html.DisplayNameFor(model => model.Names.FullName);
tidak akan berhasil, dan
@Html.DisplayNameFor(model => model.Names[0].FullName);
akan rusak jika tidak ada nama. Adakah 'cara terbaik' untuk mendapatkan nama tampilan di sini?
List<PersonNameViewModel>
Anda memilikiIEnumerable<PersonNameViewModel>
, maka itu juga aman untuk menggunakan ekspresimodel => model.Names.First().FullName
. Apakah ini benar? Yang mengatakan, saya pikir saya paling sukadummyModel
contoh terbaik dari ketiganya. Jika tidak, Anda dapat memiliki beberapa properti yang perlu Anda ketik atau tempelmodel.Names[0].
. Kemudian lagi, mungkin Anda harus mengubah bagian menjadi tampilan parsial yang menerimaList
atauIEnumerable
sebagai modelnya.