我正在使用 ASP.NET Core 2.2。我遇到的问题是我不知道在哪里使用
@RenderBody()
在我的 _Layout 页面中。这是我想做的事情的代表:
绿色部分应该来自_Layout,白色部分应该来自HomePage.cshtml。我的 HomePage 由两部分组成,一个 slider 和它下面的一个内容列表。这是我尝试过的,但它不符合我的需要,因为我不能在其中放置 slider 。
这是_Layout
<html>
<body>
<main>
<header></header>
<div class="left-col">
<div class="content">@RenderBody()</div>
<div class="right-col">
<footer></footer>
</main>
</body>
</html>
最佳答案
您可以在布局中定义一个部分来呈现所需的内容
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>
显然,您必须指定将部分放置在所需位置所需的样式。
关于c# - 如何将@RenderBody() 分成两部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56715743/