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>

 

posted @ 2014-08-21 23:09  人生无赖  阅读(872)  评论(0编辑  收藏  举报