我正在探索使用Sections在我的网站布局中创建可选内容,正如ScottGu在这篇文章中非常巧妙地解释的那样:
http://weblogs.asp.net/scottgu/asp-net-mvc-3-layouts-and-sections-with-razor
但是,我要做的是在与特定控制器相关的视图中添加侧边栏,其中侧边栏包含与控制器相关的静态信息。数据不会与模型绑定 - 它只是一些指向外部页面的链接,以及一些静态的“帮助”文本。
我不希望每个页面/视图上都有侧边栏 - 只是在某些视图上(在我的例子中,它是与特定控制器相关的视图)。
我不想做的是必须为每个需要此视图的视图声明相同的部分和内容。我试图找到一些创建“共享部分”的方法 - 我可以在需要它的视图中整齐地引用,并在控制器返回视图时传回_Layout。
部分观点似乎是前进的方式:
Injecting content into specific sections from a partial view ASP.NET MVC 3 with Razor View Engine
但我不确定这是否是正确的方法,或者是否有更简洁的方法来实现我的目标。
我一直在寻找这方面的答案,但是就像这样的事情一样,我100%肯定我没有在我的搜索尝试中使用正确的术语 - 所以如果这是重复的帖子,基本的东西,请道歉,或已在其他地方得到解答。
关于此的任何指示 - 即使只是为了给我一些关于搜索条件的方向 - 也欢迎!
我在这里没有提供任何示例代码,但如果有助于表达事物,可能会有所帮助。
干杯
答案 0 :(得分:1)
听起来你需要布局嵌套,而不是部分。
您可以创建主布局,然后使用包含侧边栏的布局,使其布局属性指向主布局。然后,您可以选择要使用的内容页面布局,只需指定Layout = Master.cshtml
或Layout = Sidebar.cshtml
答案 1 :(得分:0)
我认为您提供的链接中概述的方法非常可行。
另一种选择,取决于在布局中获取侧边栏所涉及的复杂性,您可以创建单独的布局。