2011-10-31 74 views

回答

30

是的,它的效果很好。只是告诉你的布局页面使用另一个布局页面

@{ Layout = "pathToMyOtherLayout"; } 

您也可以使用部分通过父级布局。例如:

@Section Headers {@RenderSection("Headers")} 
+2

通过节的细节是我所需要的 - 谢谢。 – Liam

9

你可以连网页就像你可以母版页,在_ViewStart.cshtml你将看到如何布局页面的定义:

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

你可以只在_Layout.cshtml添加此部分引用另一个父级,或将其添加到单个视图以引用不同的布局视图。

ScottGu对Razor Layouts

我用你在一些电子商务网站,你在哪里,在结账过程中,我不希望有任何杂念(导航等谈论这个确切的方法与详细信息后),因此我没有在布局中设置一些特殊案例if checkout,而是制作了一个LayoutBrandingOnly和一个“继承”它的Layout,因此我不必重复所有品牌HTML。

1

通过使用部分,您可以在一个布局页面中很容易地解决这个问题。 支票http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx

+1

这是可以的,当你不介意重复一堆视图导航覆盖空白。但是如果你有一个完整的视图文件夹需要不同的布局,那么使用布局“继承”会更简洁一些,这有助于你不重复自己。 –

+2

我同意在大型项目中继承会更干净,但无论哪种方式,您都必须在视图中保留某些内容,以表示它与普通视图不同。除非使用非常具有描述性的长名称来定义布局,否则覆盖导航权限可能会比实际发生的视图中的不同情况更具信息性,除非您使用非常具有描述性的长名称来定义布局,因此您无需追踪就可以一目了然地传达该信息继承链。 – benjamin

+0

好点,情景用法绝对是 –

相关问题