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

asp.net-mvc – 在MVC Razor中,如何在子布局下面定义一个RenderS

发布时间:2020-12-15 23:10:20 所属栏目:asp.Net 来源:网络整理
导读:我有一个顶级的_Layout.cshtml,看起来像这样: htmlhead @RenderSection("Header",required: false)/headbody @RenderSection("LeftPane",required: false) @RenderSection("RightPane",required: false) @RenderBody()/body/html 那么我有两个“子布局”.一
我有一个顶级的_Layout.cshtml,看起来像这样:
<html>
<head>
    @RenderSection("Header",required: false)
</head>
<body>

    @RenderSection("LeftPane",required: false)
    @RenderSection("RightPane",required: false)
    @RenderBody()

</body>
</html>

那么我有两个“子布局”.一个定义了LeftPane部分,另一个定义了LeftPane和RightPane.这些子布局称为_LeftPane.cshtml和_LeftPlusRightPane.cshtml,它们的Layout设置为“_Layout.cshtml”.

然后在每个View .cshtml文件中,我将布局设置为_LeftPane.cshtml或_LeftPlusRightPane.cshtml,具体取决于我要显示在页面上的内容.

这一切都很好.问题是我在< head>中添加了新的“标题”部分部分文件.这个部分没有在子布局中定义,而是在实际的视图中定义.当我尝试以这种方式查看某些内容时,我会收到错误:

已经定义了以下部分,但没有为布局页面“?/ Views / Shared / _LeftPlusRightPane.cshtml”:“标题”呈现.

我不想在子图层中渲染页眉部分,我想在_Layout.cshtml文件中呈现它.如何从低级别的视图“通过”定义的“标题”部分,通过子布局,直到顶部_Layout?

解决方法

您可以嵌套布局.所以_Layout2有Layout =“_Layout.cshtml”;

您还可以在每个View子文件夹中使用_ViewStart文件来为该子文件夹指定不同的默认布局.

要“通过”该部分,您只需执行以下操作:

@section Header {@RenderSection("Header",false)}

这可以让您将内容传递给链.

(编辑:李大同)

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

    推荐文章
      热点阅读