ASP MVC 4中每个控制器的通用布局和不同的设计部件

时间:2012-03-21 10:50:37

标签: asp.net-mvc razor

我有一些基础布局与网站结构。在此默认布局中,我定义了标头标签,正文结构和页脚:

<html>
<head>...</head>
<body>
<div id="sidebar">...</div>
<div id="entry">@RenderSection("Entry", true)</div>
<div id="footer">...</div>
</body>

每个控制器中的每个操作在其视图中定义自己的输入部分。

<!-- in View/Index.cshtml -->
@section Entry {
   Hello from Index action.
}

<!-- in View/Uploads.cshtml -->
@section Entry {
   Hello from Uploads action.
}

<!-- in View/Users.cshtml -->
@section Entry {
   Hello from Users action.
}

但我也希望为每个控制器定义不同的侧边栏。如果我在主布局中放置@RenderSection(“SideBar”,true),我必须为每个控制器操作重复侧边栏代码。我也无法在主布局中定义侧边栏设计代码,因为我想为每个控制器使用不同的sibebars(但我想在控制器中为每个动作使用相同的侧边栏)。

如何在不重复每个视图中的侧边栏设计代码的情况下解决此问题?

我找到了解决方案https://stackoverflow.com/a/5573970,但每个控制器都需要复制基站结构。

感谢您的回答并抱歉我的英语不好:(。

1 个答案:

答案 0 :(得分:2)

@RenderSection("SideBar", false)

然后,您只能为某些控制器布局定义部分。

您可能希望为每个控制器定义单独的布局,并且此控制器中的每个视图将使用控制器布局(您可以放置​​侧边栏)而不是默认布局。控制器布局将使用默认布局。