MVC:如何创建一个共同的一部分由多个视图
我探索使用部分,以创建在我的网站的布局可选的内容共享,如ScottGu的文章相当整齐地解释这里:MVC:如何创建一个共同的一部分由多个视图
http://weblogs.asp.net/scottgu/asp-net-mvc-3-layouts-and-sections-with-razor
但是,我想要做的是添加一个侧栏到与特定控制器相关的视图,其中侧栏包含与控制器相关的静态信息。数据不会与模型绑定 - 它只是一些到外部页面的链接,以及一些静态的“帮手”文本。
我不希望每个页面/视图上的边栏 - 只是在一些视图(在我的情况下,它是与特定控制器相关的视图)。
我不想做的是必须为每个需要此视图的视图声明相同的部分和内容。我试图找到一些创建“共享部分”的方法 - 我可以在需要它的视图中整齐地引用,并在控制器返回View时传回_Layout。
部分景色似乎是与此前进的道路:
Injecting content into specific sections from a partial view ASP.NET MVC 3 with Razor View Engine
但我不知道这是去了解这个方法不对,或者有更简洁的方式达到什么我正在瞄准。
我一直在寻找这方面的答案,但一如既往的这种事情,我100%确定我没有在我的搜索尝试中使用正确的术语 - 所以如果这是重复的后道歉,基本东西,或已经在其他地方回答。
任何指针 - 即使它只是给我一些方向上的条款搜索 - 将受到欢迎!
我还没有在这里提供任何示例代码,但如果它有助于表达事物,可能会触发一些事情。
干杯
这听起来像你需要布局嵌套,而不是部分。
您可以创建主布局,然后使用包含侧栏的布局,使其布局属性指向您的主布局。然后,您可以通过指定Layout = Master.cshtml
或Layout = Sidebar.cshtml
来选择要使用的内容页面的布局,我认为您提供的链接中概述的方法非常可行。
另一种替代方法是,根据在布局中获取侧边栏所涉及的复杂性,您可以创建单独的布局。
谢谢埃里克 - 这看起来正是我所需要的 - 一个不错的,容易维护的接近。 – Clueless99
对于任何人在这个线程中磕磕绊绊,下面的文章给出了嵌套布局的一个很好的基本例子: http://www.mikesdotnetting.com/article/164/nested-layout-pages-with-razor – Clueless99