激活当前视图菜单高亮呈现
标签:
JavaScript
在一个控制器中,它有很几个视图,在视图中有一个菜单。点击某一菜单,它分切换至对应的视图,当前的视图的菜单要高亮显示。
这个要求,也有许多网友问过Insus.NET。今天决定做一个例子,供大家学习与参考。
先看看效果:
上图中,当浏览China的视图时,China这行菜单是Active的,其它没有效果,依次类说。
接下来,看看菜单的源代码:
<ul> <li>@Html.ActionLink("Malaysia (2)", "Malaysia", "Career")</li> <li>@Html.ActionLink("Thailand (0)", "Thailand", "Career")</li> <li>@Html.ActionLink("Phillipines (2)", "Philippines", "Career")</li> <li class="active"> @Html.ActionLink("China (0)", "China", "Career")</li> <li>@Html.ActionLink("Hong Kong (0)", "HongKong", "Career")</li></ul>
当前的源程序是每一个视图均有此段代码。变化的地方是class="active"。
Ok,实现此功能,要知道用户浏览的是哪一个视图。
获取当前的视图名,你可以参考这篇《获取当前视图名》http://www.cnblogs.com/insus/p/5283729.html
如需要对此菜单作一些维护或是修改,得同时打开这几个视图来一起修改。因此我们还得重构这几个视图,解决html代码的冗余可以新建一个ParitalView来解决。
接下来面对的关键的地方要处理在视图中传递一个参数给部分视图。
创建一个视图,把菜单html代码拷贝过去,先保存,后面我们再来修改它:
现在我们需要处理,把当前的视图名,传至部分视图中去的功能。在Models中,创建一个PartialViewParameter类:
这个类中有一个public的属性,以后我们需要从视图中传参数给部分视图时,就使用这个属性。
此时我们可以去控制器中创建一个部分视图操作:
上图中的红公箭头,就是参数传递的入口。
下面的工作,就是分别打开与此有关的各个视图:
参数已经从视图传递到部分视图去了,那在部分视图,怎样接收与应用此参数呢?
菜单我们不能再直接写了,需要动态产生:
好的,我看看实现的功能与重构后程序运行效果:
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦