我有兴趣根据页面级别而不是模板级别在不同位置渲染部分,这可能吗?例如:
模板:
<body>
@if (IsSectionDefined("oneColumn")) {
@RenderSection("oneColumn", false)
<div class="row">
@RenderSection("oneColumn_1", true)
</div>
}
@if (IsSectionDefined("twoColumn")) {
@RenderSection("twoColumn", false)
<div class="row">
@RenderSection("twoColumn_1", true)
@RenderSection("twoColumn_2", true)
</div>
}
</body>
页面级别:
@{
Layout = "template.cshtml";
}
@section twoColumn{}
@section oneColumn{}
@section twoColumn_1 { <div>THIS IS COLUMN 1 - ColSpan 1</div> }
@section twoColumn_2 { <div>THIS IS COLUMN 2 - ColSpan 2</div> }
@section oneColumn_1 { <div>THIS IS COLUMN 1</div> }
这总是在oneColumn部分上方呈现oneColumn部分。但是我想把两个柱子放在一个柱子之上。希望在不创建其他模板的情况下执行此操作。
答案 0 :(得分:0)
除非引入其他级别的子模板/部分视图,否则无法指示将在“页面级别”中呈现部分的位置。
我假设您不希望总是在一列内容上显示两列内容。
如果您希望偶尔在一个列部分上方渲染两列,则在模板(布局视图)中添加另一部分,例如:
@if (IsSectionDefined("oneColumnAfterTwo")) {
@RenderSection("oneColumnAfterTwo", false)
<div class="row">
@RenderSection("oneColumn_1", true)
</div>
}
并修改您的网页/浏览量,以便在需要时包含oneColumnAfterTwo
而不是oneColumn
。