加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在嵌套内容的区域上使用_ViewStart

发布时间:2020-12-15 20:46:38 所属栏目:asp.Net 来源:网络整理
导读:我有一个_ViewStart定义我的项目的主布局(页眉,页脚). 在这个项目中,我有几个领域.每个区域都有相同的页眉和页脚,以及自己的侧面菜单.为此,我在该区域的根目录上创建了一个_ViewStart.这是(简化)代码: /Views/_ViewStart.cshtml @{ Layout = "~/Views/Share
我有一个_ViewStart定义我的项目的主布局(页眉,页脚).

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

/Views/_ViewStart.cshtml

@{
   Layout = "~/Views/Shared/_Layout.cshtml";
}

/Views/Shared/_Layout.cshtml

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

区域Foo – > /Areas/Foo/Views/_ViewStart.cshtml

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

页面/Areas/Foo/Views/Bar/Index.cshtml将无法呈现,我收到此错误:

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

如何实现这种母版嵌套?

解决方法

我讨厌回答我自己的问题,但在这里:

如果您想在那里使用RenderBody,则无法直接在您所在区域的_ViewStart上引用网站的根_ViewStart.

所以解决方案是:

/Views/_ViewStart.cshtml引用/Views/Shared/_MainLayout.cshtml

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读