基础才是重中之重~你是否真正在用MVC路由功能~再续

基础才是重中之重~你是否真正在用MVC路由功能~再续

大家好,又见面了,我是全栈君。

 在写完第一篇和第二篇MVC路由文章后,我觉得还不够,还应该再具体一点说一下分类筛选与MVC路由,如何快速完成一个分类筛选,分类筛选的高亮如何实现,以及MVC路由参数的顺序对参数值的影响等等。

今天要说的:

一 MVC路由参数的顺序对参数值的影响

二 快速完成一个分类筛选

三 根据RequestContext.RouteData来实现高亮的菜单

 

一 MVC路由参数的顺序对参数值的影响

基础才是重中之重~你是否真正在用MVC路由功能~再续

基础才是重中之重~你是否真正在用MVC路由功能~再续

我们看这两个路由的规则,几乎是相同的,但有个地方你是否注意到,在路由规范中grade与subject参数的顺序是不同的,这个参数顺序在程序中启到什么作用呢?经过实验证明,参数靠后的值会在routedata字典中保留,即当你改变subject时,grade的值会被保留,而当你改变grade时,subject将会被进行初始化,这也是正常的。

基础才是重中之重~你是否真正在用MVC路由功能~再续

而切换科目时,年级信息会被保留

基础才是重中之重~你是否真正在用MVC路由功能~再续

原来就是grade在RouteData字典中的索引排在subject这

基础才是重中之重~你是否真正在用MVC路由功能~再续

二 快速完成一个分类筛选

代码如下:

 <div class="banner">
     <span id="grade0">@Html.ActionLink("全部", "About", new { grade = 0 })</span> 
<span id="grade1">@Html.ActionLink("一年级", "About", new { grade = 1 })</span>
<span id="grade2">@Html.ActionLink("二年级", "About", new { grade = 2 })</span><hr /> <span id="subject0">@Html.ActionLink("全部", "About", new { subject = 0 })</span> <span id="subject15">@Html.ActionLink("语文", "About", new { subject = 15 })</span> <span id="subject16">@Html.ActionLink("数学", "About", new { subject = 16 })</span> <hr /> </div>

三 根据RequestContext.RouteData来实现高亮的菜单

我们的当前URL地址上的信息被以路由的形式存储到了“当前HTTP上下方”的RouteData字典里,包括你的controller及action,还有就是查询参数集合等,我们可以通过这个东西来实现当然

菜单的高亮显示功能,看JS和CSS代码:

 1 <style type="text/css">
 2     .banner { background: #eee; margin: 5px; padding: 5px; }
 3 </style>
 4 <script type="text/javascript">
 5     $(function () {
 6         $('#grade@(Request.RequestContext.RouteData.Values["grade"])')
 7         .css("background", "#000000")
 8         .find("a").css("color", "#ffffff");
 9         $('#subject@(Request.RequestContext.RouteData.Values["subject"])')
10         .css("background", "#000000")
11         .find("a").css("color", "#ffffff");
12     });
13 </script>

怎么样,这个功能模块很实用吧,呵呵!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:基础才是重中之重~你是否真正在用MVC路由功能~再续,如需转载请自行联系原博主。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107850.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 采用dlopen、dlsym、dlclose加载动态链接库【转】

    采用dlopen、dlsym、dlclose加载动态链接库【转】

    2022年3月12日
  • copy与deepcopy的区别_clone和copy的区别

    copy与deepcopy的区别_clone和copy的区别最近在实习,boss给布置了一个python的小任务,学习过程中发现copy()和deepcopy()这对好基友实在是有点过分,一开始还相爱着呢,不知道怎么回事就开始相杀了。搞的博主就有点傻傻分不清啊,但是呢,本着一探到底的极客精神,还是要查资料搞清楚这对好基友的区别。其实呢,copy()与deepcopy()之间的区分必须要涉及到python对于数据的存储方式。首先直接上结论:

    2022年10月2日
  • linux chmod 755的含义

    linux chmod 755的含义chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。一般是三个数字:第一个数字表示文件所有者的权限第二个数字表示与文件所有者同属一个用户组的其他用户的权限第三个数字表示其它用户组的权限。 权限分为三种:读(r=4),写(w=2),执行(x=1) 。 综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(r

    2022年7月16日
  • microsoft visio 2010激活成功教程版_visio2010激活成功教程版百度云

    microsoft visio 2010激活成功教程版_visio2010激活成功教程版百度云特别说明:软件仅供技术交流,请勿用于商业及非法用途,如产生法律纠纷与本人无关Microsoftvisio2013professional激活成功教程软件下载地址:链接:https://pan.baidu.com/s/1ycZHBzzF2KtGOwAs1LbHMQ密码:npkl激活成功教程步骤:文件—&gt;账号—&gt;更改产品密钥—&gt;输入如下序列号即可。序列号:…

    2022年10月5日
  • python和c++哪个好_python地名识别

    python和c++哪个好_python地名识别Ctrl+N按文件名搜索py文件ctrl+n可以搜索py文件勾选上面这个框可以搜索工程以外的文件Ctrl+shift+N按文件名搜索所有类型的文件Ctrl+shift+N可以搜索py文件,也可以搜索其它类型的文件。除了搜索不同类型的文件,Ctrl+shift+N还有一个强大之处是可以搜索路径,只需要在你搜索的词前面或后面加上/ctrl+shift+f全局字符串搜索这种搜索的名字叫做”fin…

    2022年8月28日
  • 使用 Linux 命令行发送邮件

    使用 Linux 命令行发送邮件mailx与sendmail辨析mailx是邮件客户端。人们可以使用它编写邮件,然后把邮件传递给本地的邮件传输服务器。sendmail是邮件服务器。它可以与远端的邮件服务器通信,收发邮件

    2022年7月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号