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

我有三个简单的布局,

_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用作引擎的占位符,以便使用布局页面知道在哪里放置视图的内容

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....