我有一些基础布局与网站结构。在此默认布局中,我定义了标头标签,正文结构和页脚:
<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,但每个控制器都需要复制基站结构。
感谢您的回答并抱歉我的英语不好:(。
答案 0 :(得分:2)
放@RenderSection("SideBar", false)
然后,您只能为某些控制器布局定义部分。
您可能希望为每个控制器定义单独的布局,并且此控制器中的每个视图将使用控制器布局(您可以放置侧边栏)而不是默认布局。控制器布局将使用默认布局。