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

asp.net – RenderBody()和RenderSection()必须在每个子版面上?

发布时间:2020-12-16 00:27:21 所属栏目:asp.Net 来源:网络整理
导读:我有三个简单的布局, _Layout.cshtml(这是基本布局) @RenderSection("something",required: false)@RenderBody() _Main.cshtml @{ Layout = "~/Views/Shared/_Layout.cshtml";}@section something { Hey I'm actually on the _Main layout.} Index.cshtml @
我有三个简单的布局,

_Layout.cshtml(这是基本布局)

@RenderSection("something",required: false)
@RenderBody()

_Main.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section something {
   Hey I'm actually on the _Main layout.
}

Index.cshtml

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

当我尝试在一个动作中渲染索引视图时,我得到这个错误,

The “RenderBody” method has not been called for layout page
“~/Views/Shared/_Main.cshtml”.

但是等等,_Main.cshtml有一个已经有一个RenderBody()的父版本。
所以我错了,我必须为每个孩子布局调用RenderBody()?

解决方法

是的,RenderBody应该包含在每个布局页面上,而不管嵌套。

@RenderBody用作引擎的占位符,以便使用布局页面知道在哪里放置视图的内容。

(编辑:李大同)

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

    推荐文章
      热点阅读