0

我正在使用 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 元素的子级别和顶层设置当前类。我可以使用 cookie 来记住这一点吗?或者解决这个问题的最佳方法是什么?

4

1 回答 1

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; }在代码中更早地定义。

冲洗并重复所有链接。

于 2013-03-11T12:59:12.103 回答