将元素扩展到_Layout容器MVC ASP.NET之外(首选方法?)

时间:2014-01-26 16:51:10

标签: asp.net-mvc twitter-bootstrap

我正在尝试使用MVC / Bootstrap / ASP.NET ...

具体而言,我正在尝试理解允许元素基于给定逻辑扩展到其容器的最佳实践,在这种情况下基于加载的视图。 (我已经阅读了基于角色成员资格显示元素的线索)。

我正在尝试复制此处显示的布局:URL To Sample。它有一个bootstrap轮播,我喜欢扩展整个宽度的位置,但只显示在Index(Home)页面上。在经典的MVC结构之外实现这一点是微不足道的。

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

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

旋转木马似乎需要

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

我已经尝试过我在线程中找到但却无法干净地复制此布局的内容。有人可以请一点指示吗?

1 个答案:

答案 0 :(得分:1)

你可以stretch it with css,或者更清洁的解决方案可以将它放在自己的(可选)部分中:

_Layout中的

@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
}