我正在开发一个ASP .NET项目,并且页面的侧面有一个导航栏。
<div class="navbar-inverse" role="navigation">
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav side-nav">
<li class="active">@Html.ActionLink("Dashboard", "Index", "Home", null, null)</li>
<li>@Html.ActionLink("Marketing", "Marketing", "Home", null, null)</li>
<li>@Html.ActionLink("Sales Overview", "SalesOverview", "Home", null, null)</li>
</ul>
</div>
</div>
有源元件当然是第一个。在导航栏上,这意味着该特定选择比其余选择略暗。navbar
但是,当我单击中的其他选项时,该选项仍处于活动状态。我对html相当陌生,想到的解决方案是为每个分配一个<li>
an id
,onclick
然后编写一些JavaScript,以在单击该ID时将其ID更改为active。
这似乎是一种回旋的方式,可以做一些应该包含在其中的事情<ul>
。所以我的问题是,是否有一种更简单的方法来实现更好的伸缩性(这里的意思是,我可能会向导航栏添加更多的东西,我不希望每个方法都有onclick方法)。
Shared/~Layout
顺便说一句,上面的代码在中,因此不像为每个页面定义单独的但相似的视图那样简单,实际上需要以某种方式更新此视图。
我想出了一个非常简单且不太难扩展的解决方案。在Controller
操作链接所引用的每种方法中,我将拥有:
public ActionResult Index()
{
ViewBag.Index="active";
return View();
}
其他所有项目也是如此。然后在视图中:
<li [email protected]>...
<li [email protected]>...
由于其他所有字符串都是空字符串,因此除该字符串之外没有分配任何类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句