ASP.NET MVC 元素仅在主页上而不在容器中

ASP.NET MVC elements only on homepage without being in container

我正在制作一个主页具有与其他页面不同的元素的网站,这些元素应该存在于 Shared/_Layout.cshtml 中的主容器之外,因为它们是全宽的并且不由 @RenderBody 呈现().

// _Layout.cshtml

<div class="only-homepage-element"></div>
<div class="container body-content">
    @RenderBody()
</div>

@RenderBody() 未呈现的所有内容都将在所有页面上可见,因为它们存在于 _Layout.cshtml 上。如何将这些元素仅放在主页上而不放在容器中?

实现此目的的一种方法是在 layout.cshtml

中添加一个部分
// _Layout.cshtml
@RenderSection("topSection", required: false)
<div class="container body-content">
    @RenderBody()
</div>

By setting required to false, you specify that the section is not required in every view that uses this layout.

并且在您的主页视图中您可以添加

@section topSection{
    <div class="only-homepage-element">
       ...more html
    </div>
}