2011-01-07 101 views
1

簡單的問題 - 這是允許的嗎?如果是這樣,我該怎麼做?Asp.net MVC DisplayTemplate子文件夾

作爲一個例子,說我有以下內容:

namespace Model.Event{ 
    public class Type1{ 

     [UIHint("Child")] 
     public Child Child{ get; set; } 

     [UIHint("AnotherClass")] 
     public Model.Event.SubNameSpace.AnotherClass AnotherClass{ get; set; } 

     [UIHint("Child")] 
     Public Model.Event.SubNameSpace.Child Child2{ get; set; } 
    } 

    public class Child{ 
     public string SomeText{ get; set; } 
    } 
} 

namespace Model.Event.SubNameSpace{ 
    public class AnotherClass{ 
     public string SomeText2{ get; set; } 
    } 

    public class Child{ 
     public string SomeText2{ get; set; } 
    } 
} 

並在查看/共享我有以下結構:

查看/共享/ DisplayTemplates /型號/活動/ Type1.ascx

@Model Model.Event.Type1 
    @DisplayFor(x=>x.Child) 
    @DisplayFor(x=>x.AnotherClass) 
    @DisplayFor(x=.x.Child2) 

查看/共享/ DisplayTemplates /型號/活動/ Child.ascx

@Model Model.Event.Child 
    @DisplayFor(x=>x.SomeText) 

查看/共享/ DisplayTemplates /型號/活動/子名字空間/ AnotherClass.ascx

@Model Model.Event.SubNameSpace.AnotherClass 
    @DisplayFor(x=>x.SomeText2) 

查看/共享/ DisplayTemplates /型號/活動/子名字空間/ Child.ascx

@Model Model.Event.SubNameSpace.Child 
    @DisplayFor(x=>x.SomeText2) 

然後創建一個視圖模型爲:

public class MyViewModel(){ 
    [UIHint("Type1")] 
    public Model.Event.Type1 {get; set; } 
} 

,然後我想說

觀點
@Model Model.Event.Type1 
    @DisplayFor(x=>x.Child) 

我希望它給我Type1.ascx 和由於UIHint屬性,給我的子視圖 - 這是否有道理?

+0

你想從子文件夾拉控制?基於什麼? – jfar 2011-01-07 16:16:48

回答

0

不是。看看TemplateHelpers.modeViewPaths。這是硬編碼和static

但是,每個控制器可以有單獨的DisplayTemplates

在進一步的思考,這確實通過視圖引擎,所以與吐痰和膠帶,你可能會使它的工作。但是,由於你沒有在那裏獲取模型元數據,所以會很麻煩。

+0

他們爲什麼會限制邏輯上能夠構建模板?那麼吸收:( – iwayneo 2011-01-07 16:55:19