【问题标题】:How to override the layout defined in _ViewStart for certain views in ASP.NET MVC 3?如何覆盖 _ViewStart 中为 ASP.NET MVC 3 中的某些视图定义的布局?
【发布时间】:2013-02-17 16:51:43
【问题描述】:

对于应用程序的某些视图,是否可以使用 ASP.NET MVC 3 抑制 _ViewStart.cshtml 中表达的布局。

我知道我可以在控制器操作中以编程方式定义布局。也许传入"" 可以做到这一点?

【问题讨论】:

    标签: c# .net asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    你有两个选择

    1) 使用控制器中的return PartialView(),它不会从视图开始获取布局

    2) 分配布局 = null,

     @{
         Layout = null;
      }
    

    查看 marcind 围绕 subject 进行的有趣讨论和回答

    【讨论】:

    • 你也可以用其他布局覆盖它吗?我在特定页面上,我想说 Layout = "Other layout than the one in view start" ?它会起作用吗?
    【解决方案2】:

    为了不应用布局,只需将 null 分配给视图中的 Layout 属性即可:

    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    ...
    

    【讨论】:

    • 谢谢。像这样的剃须刀代码: Layout = "" 似乎也可以正常工作(在您发布答案之前就想通了)。你认为 null 更好吗?
    • 谢谢。不得不说,我更喜欢局部视图的回归。
    • @csetzkorn – 为什么你更喜欢局部视图?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多