【问题标题】:Creating an MVC Layout that has a sidebar sometimes and other times not [closed]创建一个有时没有侧边栏的 MVC 布局 [关闭]
【发布时间】:2016-02-24 04:41:57
【问题描述】:

在我的 asp.net MVC 应用程序中,我有两种类型的页面。一个有侧边栏,一个没有侧边栏。我想只使用一个 _Layout 来实现这一点。有人可以给我建议如何使用 mvc 模板系统做到这一点。

因此,在某些情况下,我希望我的主要内容跨越所有 12 列,而在其他情况下,我希望有一个 2 列侧边栏,而主要内容跨越 10 列。有什么方法可以使用 Sections 来实现这一点?

【问题讨论】:

  • 你如何确定是否/何时?

标签: css asp.net asp.net-mvc twitter-bootstrap asp.net-mvc-5


【解决方案1】:

您可以在_Layout 中使用IsSectionDefined 有条件地检测布局部分是否已实现:

<div class="container body-content">

    @RenderSection("sideBar", false)

    @if (!IsSectionDefined("sideBar"))
    {
        <div class="row">
            <div class="col-md-12">
                @RenderBody()
            </div>
        </div>
    }
    else
    {
        @RenderBody()
    }


    <hr/>
    <footer>
        <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
    </footer>
</div>

因此,如果未定义侧栏,它只会为您呈现一个 12 列的 div。否则,您可以在所需的每个页面中定义侧栏:

@section sideBar
{
    <div class="row">
        <div class="col-md-2">
            SideBar
        </div>
        <div class="col-md-10">
            Content
        </div>
    </div>
}

【讨论】:

  • 这是实现他想要的聪明方法,但他还没有真正说明他如何确定何时发布适当的答案恕我直言。
  • 不知道为什么人们不喜欢这篇文章。我觉得这很简单。西尔万似乎明白了!感谢您的完美回复。
猜你喜欢
  • 2021-05-20
  • 2013-02-01
  • 2019-10-08
  • 1970-01-01
  • 2014-10-25
  • 2018-03-23
  • 1970-01-01
  • 2019-05-17
  • 1970-01-01
相关资源
最近更新 更多