在_Layout.cshtml中将Layout设置为null

时间:2015-01-09 21:17:48

标签: asp.net-mvc razor

您是否有理由在_Layout.cshtml中将Layout属性设置为null?

例如,像这样,在渲染身体视图之前?

    ...
    <section id="content">
        @{ Layout = null; }
        @RenderBody()
    </section>
    ...

这对我来说似乎很荒谬,删除行设置布局并不会改变页面加载观察的方式。

是否有任何原因要在_Layout.cshtml中设置Layout属性?

3 个答案:

答案 0 :(得分:3)

如果你想创建一个不会从_Layout继承任何布局的局部视图,你将使用@ {Layout = null;在你偏见的开始。

答案 1 :(得分:3)

布局页面也可以有布局。在嵌套布局中,您有意使用布局属性来定义布局页面的超级布局。默认情况下,如果未指定任何内容,则在布局页面中为null。当您@{Layout=null}时,您明确地说这是您的最终布局,因此它不会嵌套在任何超级布局中。

答案 2 :(得分:0)

我知道这是一个老线程,但我的问题通过这个技巧解决了! 我想在这里分享我的解决方案

  • 首先将_ViewStart.cshtml更改为:

    @{ if (Layout != "") { Layout = "~/Views/Shared/_Layout.cshtml"; } }

正如您所看到的,Layout是一个属性,我们会检查它是否等于""

  • 接下来,您必须在观看中添加此内容

    @{ Layout = ""; }

如果没有布局,你将获得快乐的观点!