在单击的导航元素上设置类

时间:2013-03-11 11:16:57

标签: jquery asp.net-mvc

使用ASP.NET MVC构建页面。现在我遇到了问题。

以下代码来自我的导航列表

        <li class="current start">
            <a href="/home">
                <i class="icon-home"></i>
                <span class="title">Dashboard</span>
                <span class="current"></span>
            </a>
        </li>
        <li class="has-sub">
            <a href="javascript:;">
                <i class="icon-bookmark-empty"></i>
                <span class="title">Leads</span>
                <span class="arrow"></span>
                <span class=""></span>
            </a>
            <ul class="sub">
                <li><a href="/lead?status=1">Inkorg</a></li>
                <li><a href="/lead?status=2">Utskick</a></li>
                <li><a href="/lead?status=3">Akriverade</a></li>
            </ul>
        </li>

如您所见,它可能是此导航列表的两个级别。 我需要在点击的项目上设置类当前并在发布后记住它。在第二个例子中,我需要在li元素的sub和top级别设置class current。我能用cookie记住这个吗?或者解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

首先,我建议使用MVC路由获取URL,而不是在HTML中对其进行硬编码,即:

@Url.Action("Lead", new { status = 1 })

或者

@Url.RouteUrl("MyLeadRoute", new { status = 1 })

第二个版本允许您使用命名路由而不是Action / Controller组合。

然后您通常会遵循以下模式:

@{ url = Url.Action("Lead", new { status = 1 }); }
<li@((Request.RawUrl == url) ? " class='current'" : "")><a href="@url">Some Link</a></li>

注意:您需要先在代码中定义@{ string url; }

冲洗并重复所有链接。