2012-02-02 92 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,但它确实允许我更好地组织我的共享显示模板。