【问题标题】:Extend element beyond _Layout container MVC ASP.NET (preferred method?)将元素扩展到 _Layout 容器 MVC ASP.NET 之外(首选方法?)
【发布时间】:2014-01-27 19:39:46
【问题描述】:

我正在用 MVC / Bootstrap / ASP.NET 做一些试验......

具体来说,我试图了解一种最佳实践,以允许元素根据给定的逻辑延伸到其容器之外,在这种情况下是基于加载的视图。 (我也通读了有关显示基于角色成员身份的元素的线程)。

我正在尝试复制此处显示的布局:URL To Sample。它有一个引导轮播,我喜欢扩展整个宽度但只显示在索引(主页)页面上的位置。在经典 MVC 结构之外实现这一点很简单。

使用 MVC,我们有共享的 _Layout.cshtml 和加载视图的容器 ...

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

看来轮播也需要

  • 如果加载的视图不是索引页面,则放置在 _Layout 页面上并隐藏
  • 被放置在索引页面上并允许超过容器的宽度

我已经尝试了在线程中可以找到的内容,但无法干净地复制此布局。有人可以给点方向吗?

【问题讨论】:

    标签: asp.net-mvc twitter-bootstrap


    【解决方案1】:

    您可以stretch it with css,或者更简洁的解决方案是将其放在自己的(可选)部分:

    在_布局中:

    @RenderSection("carousel", required: false)
    <div class="container body-content">
        @RenderBody()
    </div>
    

    在您的首页/主页(索引)文件中:

    @section carousel {
        // code for carousel
    }
    

    正如@Alex 所评论的,如果您的主页与其他页面有很大不同,您可以使用单独的布局文件。为此,只需像这样设置“布局”全局字符串;

    在您的首页/主页(索引)文件中:

    @{
        Layout = "~/Views/Shared/_FrontPageLayout.cshtml"; // to use a separate file
        Layout = null; // to not use a layout file
    }
    

    【讨论】:

    • +1 表示可选部分。如果索引页面与其他页面有很大不同,您也可以使用不同的布局或完全不使用布局。
    猜你喜欢
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多