【问题标题】:asp.net mvc 2 menus between 4 controllers4 个控制器之间的 asp.net mvc 2 菜单
【发布时间】:2010-01-26 16:39:36
【问题描述】:

我想要 2 个导航菜单 - 一个是“顶级”菜单,有 4 个选项,每个选项指向一个单独控制器的索引。

我想在我的屏幕左侧有一个“控制器级别”子菜单。这将对应于与顶部菜单中选择的控制器相关的链接。

“控制器级”菜单不是静态的,需要根据用户的角色进行定制。

顶层是基本的。但是如何创建从顶部选择控制器时将更改的第二个菜单?

丹克!

【问题讨论】:

    标签: asp.net-mvc menu navigation controller


    【解决方案1】:

    我正在处理需要两个菜单的类似情况。这里曾经解决过“最佳实践”吗?我需要左侧的一个菜单,以及顶部的动态创建的类似选项卡的菜单,具体取决于我正在使用/在哪个页面上。

    用户实际上需要能够根据偏好添加/删除/隐藏顶部选项卡。我们正在使用 MVC 2,我不确定标签栏是否属于控件、单个视图或什么......以及如何使它们都与我的页面交互。 (左侧导航需要始终显示用户所在的位置,顶部选项卡需要根据用户选择的子页面突出显示。

    【讨论】:

      【解决方案2】:

      如果您使用的是 MVC 2 RC 或 MVC Futures,请使用 RenderAction

      为动态菜单创建一个控制器,并调用 RenderAction("action", "controller")。这将调用控制器,您可以让控制器中的逻辑显示正确的菜单。

      【讨论】:

      • 谢谢!所以,我会从控制器 1 的构造函数中调用 RenderAction("displayMenu1", "MenuController"),从控制器 2 的构造函数中调用 RenderAction("displayMenu2", MenuController")?在哪里制作 RenderAction()打电话?
      • 你调用你想要渲染动作的渲染动作(在视图中)。
      • 哦。那么,这听起来不像可以进入母版页。但我不想在每个视图上都为左侧导航菜单调用“renderaction”。
      • hm 也许我可以将控制器名称放在视图数据中,然后像 Html.RenderAction(ViewData["CurrentController"], "MenuController") 那样渲染菜单
      • 这不是中继的好习惯,以后可能会导致一些问题。如果您不能考虑在视图中多写一行代码,您应该只使用嵌套母版页。
      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-01
      相关资源
      最近更新 更多