为了账号安全,请及时绑定邮箱和手机立即绑定

激活当前视图菜单高亮呈现

标签:
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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消