我正在使用一个mvc 4应用程序,其中我使用了bootstrap类。现在我使用了一个html帮助程序类来检查是否单击了任何actionlink菜单,它将类设置为活动状态。
现在问题在于Navbar品牌链接以及登录和注册链接。
我不能使用相同的html帮助程序类,因为它使用了一些额外的属性,如下面的代码:
@Html.ActionLink("Application name", "Index", "Home", null, new { @class = "navbar-brand" })
<li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
上面的第一个链接是标题,默认情况下应该是活动的。
和其他一个是登录和注册,点击后应该是活动的。
答案 0 :(得分:0)
我从互联网上得到了一些想法,首先我创建了一个@html帮助类,如下所示:
public static MvcHtmlString MenuLink(this HtmlHelper helper,string text, string action, string controller)
{
var routeData = helper.ViewContext.RouteData.Values;
var currentController = routeData["controller"];
var currentAction = routeData["action"];
if (String.Equals(action, currentAction as string,
StringComparison.OrdinalIgnoreCase)
&&
String.Equals(controller, currentController as string,
StringComparison.OrdinalIgnoreCase))
{
return new MvcHtmlString("<li class=\"active\">" + helper.ActionLink(text, action, controller) + "</li>");
}
return new MvcHtmlString("<li>" + helper.ActionLink(text, action, controller) + "</li>");
}
然后我在下面的菜单链接中调用了这个类:
因此,点击此链接后,它将设置为活动状态。 谢谢大家的帮助。