在Razor中使用具有两种不同布局的单一视图

时间:2015-10-05 15:56:44

标签: asp.net-mvc razor

这可能是一个奇怪的问题,但我的项目中有两个布局文件,我有一个视图,我想在每个布局文件中单独渲染(取决于URL)。

所以我遇到的问题是在视图中定义部分时。两个布局页面都具有类似功能的部分,但它们的名称不同。例如,如果我想使用layout1,它将是@section main1,而对于layout2,它将是@section main2

视图将在这些部分中呈现相同的内容,因此我是否可以动态设置部分名称,而不是只更改部分名称制作相同内容的两个副本?

1 个答案:

答案 0 :(得分:0)

您可以通过设置要使用的布局轻松更改布局页面,但无法根据我的知识动态设置名称。如果您真的无法更改其中一个的节名称,那么您可以创建一个嵌套布局,并在该嵌套布局中定义在嵌套布局中匹配的节名称。

基本上你定义:

@section a
{
   @RenderSection("namethatmatchesotherlayout")
}

通过这个你可以得到匹配的东西。