Mas*_*iti 14 asp.net-mvc razor
我有一个顶级的_Layout.cshtml,看起来像这样:
<html>
<head>
@RenderSection("Header", required: false)
</head>
<body>
@RenderSection("LeftPane", required: false)
@RenderSection("RightPane", required: false)
@RenderBody()
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后我有两个"子布局".一个只定义LeftPane部分,另一个定义LeftPane和RightPane.这些子布局称为_LeftPane.cshtml和_LeftPlusRightPane.cshtml,它们的布局设置为"_Layout.cshtml".
然后在每个View .cshtml文件中,我将Layout设置为_LeftPane.cshtml或_LeftPlusRightPane.cshtml,具体取决于我想要在页面上显示的内容.
一切正常.问题出在我<head>在文档部分添加的新"标题"部分.此部分未在子布局中定义,而是在实际视图中定义.当我尝试以这种方式查看某些内容时,我收到错误:
已定义以下部分,但尚未针对布局页面"〜/ Views/Shared/_LeftPlusRightPane.cshtml":"Header"进行渲染.
我不想在子布局中渲染Header部分,我想在_Layout.cshtml文件中渲染它.如何从低级视图,子布局到顶部_Layout"通过"定义的标题部分?
Eri*_*sch 26
您可以嵌套布局.所以_Layout2有Layout = "_Layout.cshtml";
您还可以在每个View子文件夹中使用_ViewStart文件,为该子文件夹指定不同的默认布局.
要"通过"该部分,您只需执行以下操作:
@section Header {@RenderSection("Header", false)}
Run Code Online (Sandbox Code Playgroud)
这允许您将内容传递给链.
| 归档时间: |
|
| 查看次数: |
8227 次 |
| 最近记录: |