代码之家  ›  专栏  ›  技术社区  ›  Barbaros Alp

在将OutputCache与ASP.NET MVC 2一起使用时,如何在菜单上突出显示当前页面?

  •  0
  • Barbaros Alp  · 技术社区  · 14 年前

    我有一个从数据库创建的菜单。 当用户浏览页面时,当前页面将用CSS类突出显示。

    菜单是用 Html.RenderAction("Menu","Home");

    因为是数据驱动的菜单,我使用新的 子操作缓存 属性,该属性位于用于缓存菜单的ASP.NET MVC 2 Futures项目中。

    这就是问题开始的地方,因为从缓存中显示菜单“突出显示当前页面”不再起作用。

    我怎么修这个?

    提前谢谢

    2 回复  |  直到 14 年前
        1
  •  1
  •   Andrew Barber Eric Lafortune    14 年前

    修复它的主要方法是停止缓存菜单。-P

    或者,不要从服务器指示当前页面,而是在客户端使用一些jquery的优点来代替;这样,服务器仍然可以缓存菜单,并且客户端会将菜单上链接的外观更改为当前页面。

    当然,如果没有启用JS,第二个解决方案就不能在浏览器上工作,但是IMO这是一个公平的权衡。

        2
  •  0
  •   Barbaros Alp    14 年前

    我昨天想出了这个解决办法。

    $("#nav-side,#nav-footer").find("a[href='" + window.location.pathname + "']").each(function () {
            $(this).addClass("current");
    });