C# ASP.net MVC-指定显示模板的完整路径

C# ASP.net MVC-指定显示模板的完整路径,c#,asp.net-mvc,razor,display-templates,C#,Asp.net Mvc,Razor,Display Templates,是否可以指定显示或编辑器模板的完整路径 例如,我有以下模型: public class ParentModel { public class ChildModel { get; set; } } 我有一个ParentController和一个ChildController,我想把子显示模板视图放在Views/Child/DisplayTemplates/ChildModel.cshtml中,把ParentModel.cshtml视图放在Views/Parent/DisplayTempl

是否可以指定显示或编辑器模板的完整路径

例如,我有以下模型:

public class ParentModel
{
    public class ChildModel { get; set; }
}
我有一个
ParentController
和一个
ChildController
,我想把子显示模板视图放在Views/Child/DisplayTemplates/ChildModel.cshtml中,把ParentModel.cshtml视图放在Views/Parent/DisplayTemplates/ParentModel.cshtml中

现在它找不到子显示模板,因为它正在查看视图/共享和视图/父视图


是否可以指定显示模板的完整路径,或者编写一个HtmlHelper来指定要查看的文件夹?

我找到了一种方法,它只存在一个小小的缺点:

@Html.DisplayFor(model => model.Child, "Child/ChildModel")
我创建了以下文件夹:


Views\Shared\DisplayTemplates\Child
并将
ChildModel.cshtml
放置在文件夹中。这样做的缺点是,它不再使用模型名称来确定模板名称,我想它可能也忽略了
UIHint
,但它确实允许我更好地组织共享显示模板。

有一个解决方案,但这将意味着对应用程序的性能造成影响。这是你愿意做的交易吗?我真的不明白问题出在哪里。这正是视图/共享视图存在的原因。你为什么不想用它呢?这取决于它对性能的影响有多大。“我想我总是可以尝试一下,看看它是否引人注目,然后从中吸取教训。”现实中的迈斯特曼?我基本上有一个返回普通视图的“主”控制器和一组与所有其他控制器通信的AJAX对话框。假设我有10个“子”控制器,每个控制器都有一个编辑和创建ajax对话框。这些都需要立即进入视图/共享。我只想把事情组织得更好一点。如果我也能将它们存储在Views/Shared/Child中,我会很高兴,但这似乎也不起作用。