如何将@RenderBody() 分成两部分
Posted
技术标签:
【中文标题】如何将@RenderBody() 分成两部分【英文标题】:How to separate @RenderBody() into two parts 【发布时间】:2019-11-05 00:44:57 【问题描述】:我正在使用 ASP.NET Core 2.2。我的问题是我不知道在哪里使用
@RenderBody()
在我的 _Layout 页面中。这是我想做的表示:
绿色部分应该来自 _Layout,白色部分应该来自 HomePage.cshtml。我的 HomePage 由两部分组成,一个滑块和一个下面的内容列表。这是我尝试过的,但它不能满足我的需要,因为我不能将滑块放入其中。
这是_Layout
<html>
<body>
<main>
<header></header>
<div class="left-col">
<div class="content">@RenderBody()</div>
<div class="right-col">
<footer></footer>
</main>
</body>
</html>
【问题讨论】:
阅读部分docs.microsoft.com/en-us/aspnet/core/mvc/views/… @Nkosi 我不是初学者。我知道什么是 layout 以及如何指定它。问题是我的 _HomePage 由两部分组成。其中一部分应该在 .left-col 之前,另一部分应该在 .left-col 之后 我从未暗示你是初学者。我是说你可以使用部分来实现你想要的。检查我之前评论中的部分主题链接。 @然后发布你的答案请。因为我在您提供的链接中没有找到任何有用/相关的点。 【参考方案1】:您可以在布局中定义一个部分来呈现所需的内容
HomePage.cshtml
@
ViewBag.Title = "Home Page";
@section Slider
<div>My HomePage slider</div>
<p>My HomePage content</p>
布局会检查该部分是否存在,如果存在则渲染它
_Layout.cshtml
<html>
<body>
<main>
<header></header>
@if (IsSectionDefined("Slider"))
<div class="homepage-slider">
@RenderSection("Slider", required: false)
</div>
<div class="left-col">
<div class="content">@RenderBody()</div>
<div class="right-col">
<footer></footer>
</main>
</body>
</html>
您显然必须指定将部分放置在所需位置所需的样式。
参考Layout in ASP.NET Core: Sections
【讨论】:
以上是关于如何将@RenderBody() 分成两部分的主要内容,如果未能解决你的问题,请参考以下文章
如何将 ms 访问报告的详细信息部分分成两页进行打印预览和打印?