【问题标题】:MVC4 How can I set li class to active when the view is activeMVC4 如何在视图处于活动状态时将 li 类设置为活动状态
【发布时间】:2013-02-09 11:39:24
【问题描述】:

大家好,我的_layout如下

<div id="primary_nav">
    <ul>
        <li class="left active" id="nav_discussion" runat="server">
          <a title="Go to Forums" href="@Url.Action("Index", "Home")">Forums</a>
       </li>
       <li class="left" id="nav_members" runat="server">
          <atitle="Go to Member List" href="@Url.Action("Members", "Home")">Members</a>
       </li>
    </ul>
</div>

我将其用作我创建的每个视图的layout or master page,现在我需要的是当我移至...Home/Members 时,我想将成员选项卡设置为像

【问题讨论】:

  • 如果您在 _layout 文件中设置活动类,我不确定是否可以执行此操作。我认为您要么必须将菜单定义为参数化的局部视图,要么使用 JavaScript。
  • 是的,您可以这样做,因为视图是在 _Layout 之前呈现的,并且它的所有属性都可用。可以使用 ViewBag 或 @DarinDimitrov 的答案

标签: asp.net-mvc-4


【解决方案1】:

我建议您为此编写一个自定义助手。我在这里举例说明了如何实现这一点:https://stackoverflow.com/a/6323032/29407

您当然可以在 _Layout 中编写一些意大利面条式代码(正如您已经开始的那样)并使用 RouteData 测试当前控制器和操作,并测试它是否等于指定值并应用一些自定义 CSS 类来使其 活跃。我不想展示这方面的例子,因为我认为这是非常糟糕的做法。我会做的是把你的菜单项封装在一个可重用的助手中。

【讨论】:

  • 我打算为此建议使用 viewbag,但我更喜欢这个解决方案 +1
【解决方案2】:

我建议您在单击成员时使用 Jquery 从表单中删除“左激活”类并将其添加到成员中......这将是一个简单的解决方案!!!

【讨论】:

  • 直接导航到页面怎么样,jquery是做什么的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
  • 2021-05-10
  • 2020-01-19
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
相关资源
最近更新 更多