首页 > 代码库 > MVC导航菜单高亮显示实现思路

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>