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

标签 c# asp.net asp.net-mvc razor asp.net-mvc-5

我正在制作一个主页具有与其他页面不同的元素的网站,这些元素应该存在于 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.

在您的主页 View 中您可以添加

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

关于c# - ASP.NET MVC 元素仅在主页上而不在容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28002920/

相关文章:

asp.net-mvc - 模型绑定(bind)时查找 View 模型属性上的自定义属性

javascript - 如何从 Javascript 调用 URL Action ?

c# - 将球体投影到立方体上

c# - 为什么此 MVC 路由不起作用(ASP.Net Core 2.2)

c# - 服务台票务系统 : Windows app vs web app

c# - 在类库中包含 View

c# - Mapster Adpat 不工作

c# - 在 Web api Controller 中使用 ControllerContext.RequestContext

c# - EntityType 没有定义键

c# - ASP.net core viewmodel 字段是必需的,尽管它可以为 null