MVC导航菜单高亮显示实现思路
///代码不是我写的,但是已经亲自测试过了,按照我的理解写的注释,不对的地方大家评论指出
@{ @*这个是把当前的路由值格式化并保存到currentController这个变量中,这里是格式化为Controller->Action这种格式的,如果你的导航菜单所指向的路径都是在一个Controller下面,那就完全可以省掉Controller *@ var currentController = string.Format("[{0}->{1}]", ViewContext.RouteData.Values["controller"].ToString(), ViewContext.RouteData.Values["action"].ToString()); } @*helper语法让你可以轻松在视图模板中创建可重用的帮助方法,以此来封装一些负责向页面进行输出的功能 这里就是使用了Helper来构造了MenuItem这样一个帮助方法,来得到导航菜单项的样式*@ @helper MenuItem(string curControllerName, string allowedControlNames) { @(Html.Raw(allowedControlNames.IndexOf(curControllerName, StringComparison.InvariantCultureIgnoreCase) != -1 ? " TT3 " : "")) } <ul> @*应用MenuItem帮助方法,得到当前菜单的样式*@ <li class="@MenuItem(currentController,"[Home->CompanyIntroduction]")"><a href="@Url.Action("Controller","Actioin")">菜单1</a></li> <li class="@MenuItem(currentController, "[Lottery->Trends]") TT2"><a href="@Url.Action("Controller", "Action")">菜单2</a></li><li class="@MenuItem(currentController, "[Lottery->Trends]")"><a href="@Url.Action("Controller","Action")">菜单3</a></li> <li class="@MenuItem(currentController, "[Lottery->Forecast]") TT2"><a href="@Url.Action("Controller","Action")">菜单4</a></li> </ul>
西安.NET俱乐部群