Asp.net mvc 在嵌套内容的区域上使用_ViewStart

Asp.net mvc 在嵌套内容的区域上使用_ViewStart,asp.net-mvc,razor,Asp.net Mvc,Razor,我有一个_ViewStart来定义项目的主布局(页眉、页脚) 在这个项目中,我有几个方面。每个区域都有相同的页眉和页脚,以及自己的侧菜单。为此,我在该区域的根目录上创建了一个_ViewStart。以下是(简化)代码: /视图/_ViewStart.cshtml @{ Layout = "~/Views/Shared/_Layout.cshtml"; } @{ Layout = "~/Views/Shared/_Layout.cshtml"; } <div class="ro

我有一个_ViewStart来定义项目的主布局(页眉、页脚)

在这个项目中,我有几个方面。每个区域都有相同的页眉和页脚,以及自己的侧菜单。为此,我在该区域的根目录上创建了一个_ViewStart。以下是(简化)代码:

/视图/_ViewStart.cshtml

@{
   Layout = "~/Views/Shared/_Layout.cshtml";
}
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<div class="row">
<div class="sidemenu">
    //default sidemenu for this area
</div>
<div>
        @RenderBody()
</div>
</div>
/视图/Shared/_Layout.cshtml

    <html>
        <div>
            //header
        </div>
        <div>
            @RenderBody
        </div>
    </html>

//标题
@渲染器
Area Foo->/Areas/Foo/Views/_ViewStart.cshtml

@{
   Layout = "~/Views/Shared/_Layout.cshtml";
}
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<div class="row">
<div class="sidemenu">
    //default sidemenu for this area
</div>
<div>
        @RenderBody()
</div>
</div>
@{
Layout=“~/Views/Shared/_Layout.cshtml”;
}
//此区域的默认侧菜单
@RenderBody()
页面/Areas/Foo/Views/Bar/Index.cshtml将无法呈现,我遇到以下错误:

CS0103:当前上下文中不存在名称“RenderBody”


如何实现这种母版页嵌套?

我不想回答自己的问题,但这里是:

如果要在区域的_ViewStart上创建渲染体,则不能直接在该区域的_ViewStart上引用站点的根_ViewStart

因此,解决方案是:

/Views/\u ViewStart.cshtml参考/Views/Shared/\u MainLayout.cshtml

/Areas/Foo/Views/_ViewStart.cshtml参考/Areas/Foo/Views/Shared/_AreaLayout.cshtml

/Areas/Foo/Views/Shared/_AreaLayout.cshtml参考/Views/Shared/_mainloayout.cshtml

就这样。必须使用“共享”文件夹才能使用方法“RenderBody()”