使用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记住这个吗?或者解决这个问题的最佳方法是什么?
答案 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; }
。
冲洗并重复所有链接。