2011-10-01 53 views
5

我有我的MVC3 Razor視圖以下視圖模型:如何爲自定義對象調用Html.Display,而不是整個Model?

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

我希望喜歡我的Razor視圖來顯示所有的人:

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

@Html.Display@Html.DisplayFor似乎不工作我..

我可以使用Person作爲模型創建一個單獨的非常類型的視圖,並在那裏調用@Html.DisplayForModel,但有沒有一種方法去沒有單獨的v IEW?

回答

15

~/Views/Shared/DisplayTemplates的內部創建一個名爲Person.cshtml的部分視圖文件。使其強烈鍵入Person類。

實現您的視圖結構。

然後當你調用它像下面(在你的情況下),你會得到你所期望的:

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

非常感謝!順便說一句,我不需要自定義模板,我只是沒有想過使用'@ Html.DisplayFor(m => person)'而不使用'm => m.Something' :) – Shaddix

相關問題