0

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

4

3 回答 3

2

是的,您可以从视图调用@Html.Action@Hmtl.RenderAction调用控制器。但这接近于混合关注点,因为现在您的视图正在主动调用您的控制器。

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

但同时我想要这个布局的控制器,因为有一些功能可以将菜单设置为突出显示。

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

于 2013-04-05T09:41:33.987 回答
0

部分操作可能是您在此处寻找的内容 -这篇文章可能会有所帮助。它与 MVC2 相关,但原理保持不变。

于 2013-04-05T09:36:33.880 回答
0

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

于 2013-04-05T10:00:25.177 回答