我有一个名为BaseController的Controller,Controller1和Controller2继承自它。
这些控制器的所有视图都在〜/ Views / Base /之下,原因是Controller1和2执行完全相同的操作,但在某些覆盖操作中具有自定义属性。
我希望能够指向〜/ Views / Base作为在Controller1和Controller2中查找视图的位置。现在我可以这样做,而不必按照Dale在这篇文章中的解决方案实现我自己的ViewLocator Views in separate assemblies in ASP.NET MVC
我宁愿不把所有这些视图都抛到〜/ Views / Shared中,因为除了这两个控制器之外,它们并没有真正共享。
答案 0 :(得分:2)
您可以编写自定义视图引擎,以便在搜索列表中添加此新位置:
public class MyViewEngine : RazorViewEngine // WebFormViewEngine - if you are using WebForms
{
public MyViewEngine()
{
ViewLocationFormats = base.ViewLocationFormats.Union(new[]
{
"~/Views/Base/{0}.cshtml",
"~/Views/Base/{0}.vbhtml",
"~/Views/Base/{0}.aspx",
"~/Views/Base/{0}.ascx",
}).ToArray();
}
}
将在Application_Start
注册:
ViewEngines.Engines.Add(new MyViewEngine());