Bunun oldukça basit olduğuna inanıyorum, modelimdeki bir listedeki bir öğenin görünen adını göstermenin doğru yolunu bulamıyorum.
Basitleştirilmiş modelim:
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; } }
}
ve İsimler:
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; }
}
Şimdi, bir kişi için tüm isimleri gösteren bir tablo yapmak ve FullName İçin DisplayName'i almak istiyorum. Açıkçası,
@Html.DisplayNameFor(model => model.Names.FullName);
işe yaramazdı ve
@Html.DisplayNameFor(model => model.Names[0].FullName);
isim yoksa kırılır. Burada görünen adı almanın 'en iyi yolu' var mı?
List<PersonNameViewModel>
sahipsenizIEnumerable<PersonNameViewModel>
, ifadeyi kullanmanın da güvenli olduğunu varsayıyorummodel => model.Names.First().FullName
. Bu doğru mu? BununladummyModel
birlikte, üçünün en iyi örneğini sevdiğimi düşünüyorum . Aksi takdirde, yazmanız veya yapıştırmanız gereken birkaç özelliğiniz olabilirmodel.Names[0].
. Daha sonra, belki de bölümü modeliniList
veyaIEnumerable
modelini kabul eden kısmi bir görünüme yeniden düzenlemelisiniz .