2013-06-05 59 views
2

我有一個模型屬性被聲明爲類型List<MyClass>EditorTemplate集合模型類的命名約定

public class MyModel 
{ 
    List<MyClass> MyProperty { get; set; } 
} 

我希望能夠使用Razor模板來顯示/編輯屬性。我的問題是,我該如何命名的EditorTemplate視圖,以便我可以顯示使用正常的語法屬性:

@model MyModel 
@Html.DisplayFor(m => m.MyProperty) 

我知道我可以創建一個名爲MyClass.cshtml認爲,將用於類型MyClass,但是如何爲列表創建模板?

回答

5

您可以使用[UIHint]屬性:

public class MyModel 
{ 
    [UIHint("TemplateForTheList")] 
    public List<MyClass> MyProperty { get; set; } 
} 

或指定模板名稱作爲第二個參數DisplayFor幫手:

@model MyModel 
@Html.DisplayFor(m => m.MyProperty, "TemplateForTheList") 

,然後有一個TemplateForTheList.cshtml模板:

@model List<MyClass> 
... 

在這種情況下,模板引擎將不會呈現集合屬性的每個元素的模板。它將簡單地將集合本身​​傳遞給模板。