如何在重新加载页面后突出显示导航栏中的活动菜单项

And*_*rus 5 asp.net asp.net-mvc jquery twitter-bootstrap twitter-bootstrap-3

使用以下代码定义Bootstrap 3导航栏菜单.如果从菜单中选择了项目,则从服务器加载新页面.每页都会显示相同的引导菜单.但是,不会突出显示未用于选择菜单的下拉列表.

如果允许本地存储,如何强制bootstrat自动强制最后选择的菜单项:将最后选择的项存储在本地存储中.如果加载了新页面,请获取最后一次单击的菜单项名称,并通过在其中添加active类来突出显示它.

通过动态地将活动类添加到适当的项目,在服务器中重新启动更改生成的菜单.没有这样的改变怎么实现呢?ASP.NET MVC4用于服务器端.也许浏览器中的jquery + localstorage或者一些简单的ASP.NET MVC4解决方案可用.

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>

    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="dropdown">
          <a href='#' class="dropdown-toggle" data-toggle="dropdown">Dropdown 1</a>
          <ul class="dropdown-menu" role="menu">
            <li><a href='somepage'>Action11</a></li>
            <li><a href='somepage'>Action12</a></li>
            <li><a href='somepage'>Action13</a></li>
          </ul>
        </li>

        <li class="dropdown">
          <a class="dropdown-toggle" data-toggle="dropdown">Dropdown 2</a>
          <ul class="dropdown-menu" role="menu">
            <li><a href='somepage'>Action121</a></li>
            <li><a href='somepage'>Action122</a></li>
            <li><a href='somepage'>Action123</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>
Run Code Online (Sandbox Code Playgroud)

更新

菜单包含带有查询参数的下拉列表,如下所示.在这种情况下,在Alexander Solonik的代码中,回答_str值#总是和urlpath总是DoklstlG所以没有任何突出显示.怎么修 ?

<nav class="navbar navbar-default navbar-static-top">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav" id="menu">
                <li class='dropdown'>
<a href='#' class='dropdown-toggle' data-toggle='dropdown' role='button'>Pad1
</a>
<ul class='dropdown-menu' role='menu'>

<li><a href='/admin/?_user=admin&_company=1'>Bar1</a></li><li><a id='menu_DoklstlG' tabindex='-1' entity='DoklstlG' href='/admin/Grid/Index/DoklstlG?_user=admin&_company=1' title='Ctrl+E'>Option1</a></li>

<li><a id='menu_DoklstlO' tabindex='-1' entity='DoklstlO' href='/admin/Grid/Index/DoklstlO?_user=admin&_company=1'>Ostuarve</a>

...
Run Code Online (Sandbox Code Playgroud)

Leo*_*ger 0

您可以做的是在请求的操作中设置查看包值。之后,在构建菜单时制定一个逻辑来请求该值。

我使用该机制,但使用操作过滤器并将其用于操作或控制器注释