当我希望特定菜单链接在给定页面上处于活动状态时,我在Razor中使用这种方法:
在主布局上,我有这些检查:
var active = ViewBag.Active;
const string ACTIVE_CLASS = "current";
if (active == "home")
{
ViewBag.ActiveHome = ACTIVE_CLASS;
}
if (active == "products")
{
ViewBag.ActiveProducts = ACTIVE_CLASS;
}
Run Code Online (Sandbox Code Playgroud)
等等
主布局上的html菜单:
<ul>
<li class="@ViewBag.ActiveHome"><a href="/">Home</a></li>
<li class="@ViewBag.ActiveProducts"><a href="@Url.Action("index", "products")">Products</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
指定在不同视图上使用的布局页面时:
@{
ViewBag.Active = "home";
Layout = "~/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)
有没有比我目前使用的更好的方法来分离活动链接?