2011-10-01 12 views
5

benim MVC3 Jilet görünümü için aşağıdaki görünüm-modeli vardır:Html.Display özel bir nesne için nasıl çağrılır, bütün Model değil?

foreach (var person in Model.Persons) 
{ 
<div> 
    @* some custom formatting *@ 
    @Html.Display(person) 
</div> 
} 

@Html.Display veya @Html.DisplayFor için çalışmaz gibi görünüyor: Ben gibi benim Jilet görünümündeki tüm kişileri görüntülemek istediğiniz

public class UserProfileModel 
{ 
    public Person[] Persons { get; set; } 
    //some other fields 
} 

me ..

Model olarak Person kullanarak ayrı bir stongly ile yazılan görünüm oluşturabilir ve orada @Html.DisplayForModel'u arayabilirim, ancak ayrı bir v iew?

cevap

15

~/Views/Shared/DisplayTemplates içinde Person.cshtml adlı kısmi görünüm dosyasını oluşturun. Person sınıfına yazdınız.

Görünümünüzün yapısını uygulayın. Eğer (senin davana) altına gibi çağırdığınızda

Ardından, beklediğiniz alacak:

foreach (var person in Model.Persons) 
{ 
<div> 
    @* some custom formatting *@ 
    @Html.DisplayFor(m => person) 
</div> 
} 
+2

sayesinde çok! Bu arada özel bir şablona ihtiyacım yok, '' Html.DisplayFor (m => kişi) 'yi' m => m.Something' kullanmadan kullanmayı hiç düşünmedim :) – Shaddix

İlgili konular