0

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

回答

2

是的,您可以拨打@Html.Action@Hmtl.RenderAction从视图调用控制器。但是这与关注点的混合有关,因为现在你的观点正在积极地调用你的控制器。

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

但同时我想这个布局的控制,因为有一些 功能设置菜单亮点。

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

+0

这里我们不使用viewbag。 – Niths 2013-04-05 09:49:19

+0

好的,然后我提供的其他选项之一应该工作。我经常不使用ViewBag,但对于这样的小数据很有用。 – 2013-04-05 09:50:18

+0

我需要的是我设置cookie,我必须将其设置为选中,但是当我将此URL放入新选项卡时,需要使用旧Cookie。 – Niths 2013-04-05 09:52:47

0

为菜单创建一个动作,并将菜单ui放入视图中,然后在布局页面上调用Html.Action(“菜单动作名称”,“控制器名称”)。

相关问题