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