asp.net-mvc – 具有引导Navbar的MVC – 将所选项目设置为活动
发布时间:2020-05-23 15:46:14 所属栏目:asp.Net 来源:互联网
导读:我正在学习Bootstrap,无法将选定的项目置于“活动”状态。活动状态保留在默认项目上。新选择/点击的项目会短暂更改为活动状态,但会恢复。我已经阅读了所有的帖子,仍然无法使此代码工作。我使用MVC5和JQuery 2.1。 编辑: 如果我将li的href更改为href =“#
|
我正在学习Bootstrap,无法将选定的项目置于“活动”状态。活动状态保留在默认项目上。新选择/点击的项目会短暂更改为活动状态,但会恢复。我已经阅读了所有的帖子,仍然无法使此代码工作。我使用MVC5和JQuery 2.1。 编辑: 标记 <div class="navbar-wrapper">
<div class="container">
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-header">
<a class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="navbar-brand" href="#">Test</a>
</div>
<div class="btn-group pull-right">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<i class="icon-user"></i>Login
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">Profile</a></li>
<li class="divider"></li>
<li><a href="#">Sign Out</a></li>
</ul>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="~/Home">Home</a></li>
<li><a href="~/Home/About">About</a></li>
<li><a href="~/Student">Students Sample</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="~/Admin/Home/Index"">Admin</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!-- /container -->
</div>
<!-- /navbar wrapper -->
脚本 <script type="text/javascript">
$(function () {
$('.navbar-nav li').click(function () {
$(this).addClass('active').siblings().removeClass('active');
});
});
</script>
编辑:这是我结束了在发布的答案和一些研究的帮助下做的。 public static string MakeActive(this UrlHelper urlHelper,string action,string controller,string area = "")
{
string result = "active";
string requestContextRoute;
string passedInRoute;
// Get the route values from the request
var sb = new StringBuilder().Append(urlHelper.RequestContext.RouteData.DataTokens["area"]);
sb.Append("/");
sb.Append(urlHelper.RequestContext.RouteData.Values["controller"].ToString());
sb.Append("/");
sb.Append(urlHelper.RequestContext.RouteData.Values["action"].ToString());
requestContextRoute = sb.ToString();
if (string.IsNullOrWhiteSpace(area))
{
passedInRoute = "/" + controller + "/" + action;
}
else
{
passedInRoute = area + "/" + controller + "/" + action;
}
// Are the 2 routes the same?
if (!requestContextRoute.Equals(passedInRoute,StringComparison.OrdinalIgnoreCase))
{
result = null;
}
return result;
}
解决方法您必须检查您的控制器或根据当前网址查看哪个菜单项是活动的:我有一个类似于这样的扩展方法: public static string MakeActiveClass(this UrlHelper urlHelper,string controller)
{
string result = "active";
string controllerName = urlHelper.RequestContext.RouteData.Values["controller"].ToString();
if (!controllerName.Equals(controller,StringComparison.OrdinalIgnoreCase))
{
result = null;
}
return result;
}
你可以在你的视图中使用它: <!-- Make the list item active when the current controller is equal to "blog" -->
<li class="@Url.MakeActive("blog")">
<a href="@Url.Action("index","blog")">....</a>
</li> (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-web-api – 如何设置Elmah与ASP.NET Web API
- 在ASP.NET中流文件的最佳方式
- asp.net-mvc – 使用Html.BeginForm()与自定义路由
- asp.net-core – 在ASP.NET MVC Core中仍然存在ViewModel概
- ASP.NET应用程序中的浏览器缓存
- .net – MVC3部分视图与常规视图
- asp.net – 如何在Azure网站上设置machineKey
- asp.net-mvc – Mvc验证正则表达式只有数字?
- asp.net-web-api – SelfHosted AspNet WebAPI与不同项目中
- asp.net-mvc – ASP.Net MVC如何使用Html.RenderAction将ur
推荐文章
站长推荐
- asp.net-mvc – MVC应用程序调试错误:viewstate
- asp.net-mvc – 如何使用ASP.NET MVC 5和OWIN获取
- 设置ASP.NET(Visual Studio)服务器配置的默认页面
- asp.net-mvc-routing – @ Url.Action获取?附加
- asp.net-core – ASP.NET Core WebAPI默认路由不
- 如何在ASP.NET中实现实时更新
- asp.net-mvc-2 – 在MVC中实现自定义标识和IPrin
- asp.net-mvc – ASP.NET MVC Spark视图引擎
- asp.net-mvc-3 – 如何添加一个锚标签到我的URL?
- asp.net – 正则表达式匹配10-14位数
热点阅读
