Asp.net mvc 在区域共享文件夹下找不到局部视图

Asp.net mvc 在区域共享文件夹下找不到局部视图,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我在下面有一个布局页面 ~/Areas/Admin/Shared/\u Layout.cshtml 现在在里面我有一个部分,我应该在那里渲染一个局部视图。因此,我在\u layout.cshtml中所做的是提供@Html.RenderAction(“侧栏”) 该控制器实际上是basecontroller,继承给所有其他控制器。作为 [OutputCache(Duration=60)] public partial class BaseController : Controller {

我在下面有一个布局页面

~/Areas/Admin/Shared/\u Layout.cshtml

现在在里面我有一个部分,我应该在那里渲染一个局部视图。因此,我在
\u layout.cshtml
中所做的是提供
@Html.RenderAction(“侧栏”)

该控制器实际上是basecontroller,继承给所有其他控制器。作为

[OutputCache(Duration=60)]
public partial class BaseController : Controller
{       
    [ChildActionOnly]
    public virtual ActionResult Sidebar()
    {

        return View();
    }
}
现在,该控制器应该由所有X、Y、Z控制器插入,这样所有控制器都可以使用childaction
侧栏
,这样
@Html.Renderaction(“侧栏”)
就不会有麻烦找到要渲染的子动作

现在问题是partialview路径位于
/Areas/Admin/Views/Shared/Partials/Sidebar/cshtml

我还将razor视图引擎配置为在特定的
/Areas/Admin/Views/Shared/Partials/Sidebar.cshtml
下查找。并在global.asax下注册

但它无法找到局部视图并给出错误信息

~/Areas/Admin/Views/Admin/Sidebar.aspx
~/Areas/Admin/Views/Admin/Sidebar.ascx
~/Areas/Admin/Views/Shared/Sidebar.aspx
~/Areas/Admin/Views/Shared/Sidebar.ascx
~/Views/Admin/Sidebar.aspx
~/Views/Admin/Sidebar.ascx
~/Views/Shared/Sidebar.aspx
~/Views/Shared/Sidebar.ascx
~/Areas/Admin/Views/Admin/Sidebar.cshtml
~/Areas/Admin/Views/Admin/Sidebar.vbhtml
~/Areas/Admin/Views/Shared/Sidebar.cshtml
~/Areas/Admin/Views/Shared/Sidebar.vbhtml
~/Admin/Sidebar.cshtml
~/Views/Admin/Sidebar.vbhtml
~/Views/Shared/Sidebar.cshtml
~/Views/Shared/Sidebar.vbhtml
我的自定义razor视图引擎是

public class LocalizedViewEngine : RazorViewEngine
{
    ///{0} = View Name
    ///{1} = Controller Name

    private static readonly string[] NewPartialViewFormats = new[] {
        "~/Areas/Admin/Views/{1}/Partials/{0}.cshtml",
        "~/Areas/Admin/Views/Shared/Partials/{0}.cshtml",
        "~/Views/Shared/Partials/{0}.cshtml",
        "~/Views/{1}/Partials/{0}.cshtml"
    };
    private static readonly string[] NewViewLocationFormats = new[] { 
        "~/Areas/Admin/Views/{1}/{0}.cshtml" 
    };

    public LocalizedViewEngine()
    {
        base.ViewLocationFormats = 
base.ViewLocationFormats.Union(NewViewLocationFormats).ToArray<string>();
        base.PartialViewLocationFormats = 
base.PartialViewLocationFormats.Union(NewPartialViewFormats).ToArray<string>();
    }
}
但是它无法在tha
~/Areas/Admin/Views/Shared/Partials/Sidebar.cshtml
下找到部分视图。我哪里做错了

ViewEngines.Engines.Add(new LocalizedViewEngine());