我可以在asp.net mvc4中为布局创建一个控制器吗?

时间:2013-04-05 09:34:28

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 asp.net-mvc-4

我有一个菜单,我使用了一个cookie,以便通过刷新设置菜单。菜单对所有类都是通用的,所以我将它放在_layout.cshtml中,但同时我想要一个控制器来进行这种布局,因为有一些功能可以将菜单设置为高亮显示。我可以为此创建一个控制器吗?

3 个答案:

答案 0 :(得分:2)

是的,您可以调用@Html.Action@Hmtl.RenderAction从视图中调用控制器。但这种关注点混合在一起,因为现在您的观点正在积极地呼叫您的控制器。

更好的方法通常是将适当的数据作为视图模型的一部分传递给视图。

  

但同时我想要一个控制器用于此布局,因为那里   一些功能将菜单设置为高亮显示。

如果您正在做一些基本的事情,比如突出显示当前页面,可能会有一个更简单的解决方案。您可以将当前页面ID放入ViewBag并在主_Layout文件中检索该值,并使用它来选择相应的项目。

答案 1 :(得分:0)

您可以在此处寻找部分行动 - this article may be some help。它与MVC2有关,但原则保持不变。

答案 2 :(得分:0)

为菜单创建一个动作,并在视图中放置菜单ui,然后在布局页面上调用Html.Action(“menu action name”,“controllern name”)。