2012-02-02 32 views
3

是否可以指定顯示或編輯器模板的完整路徑?ASP.net MVC - 指定顯示模板的完整路徑

例如,我有以下型號:

public class ParentModel 
{ 
    public class ChildModel { get; set; } 
} 

我有一個ParentControllerChildController,我願把孩子顯示模板視圖中查看/兒童/ DisplayTemplates/ChildModel.cshtml和Views/Parent/DisplayTemplates/ParentModel.cshtml中的ParentModel.cshtml視圖。

現在它無法找到子顯示模板,因爲它正在查看Views/Shared和Views/Parent。

是否可以指定顯示模板的完整路徑或編寫可指定要查找的文件夾的HtmlHelper?

+0

有一個解決方案,但這將意味着你的應用程序的性能打擊。這是你願意採取的一種交易嗎? – Paul 2012-02-02 17:42:52

+0

我真的不明白問題是什麼。這正是Views/Shared存在的原因。你爲什麼不想使用它? – 2012-02-02 17:51:02

+0

這取決於它有多大的性能。我想我總是可以嘗試一下,看看它是否明顯,並從那裏採取。 – Dismissile 2012-02-02 17:51:57

回答

3

我已經想通了,只有一個小缺點的工作方式:

@Html.DisplayFor(model => model.Child, "Child/ChildModel") 

我創建以下文件夾:

Views\Shared\DisplayTemplates\Child,文件夾中放置ChildModel.cshtml。缺點是它不再使用模型名稱來確定模板名稱,我想它可能也會忽略UIHint,但它確實允許我更好地組織我的共享顯示模板。