基础才是重中之重~你是否真正在用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路由功能~再续,如需转载请自行联系原博主。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ES6 模板字符串方法[通俗易懂]

    ES6 模板字符串方法[通俗易懂]ES5中在JS中写一个模块是这样的:varcontent=’’+’’+title+’’+’’在ES6中可以这样:let这里就直接写不用引号什么的&lt;div&gt;${变量}&lt;div&gt;方便快捷用的是两个烦引号“来包裹模块…

  • typescript web_typescript文档

    typescript web_typescript文档前言上一篇我们讲到如何手动编译TypeScript,如果我们每次都要手动编译,那么这样会很累,接下来就介绍自动编译TypeScript。mac自动编译typescript在Typescript文

  • java web的动静分离_Nginx+Tomcat动静分离架构

    java web的动静分离_Nginx+Tomcat动静分离架构Nginx+Tomcat动静分离架构Nginx+tomcat是目前主流的javaweb架构,Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat、Resin出来动态页面。动静分离从目前实现角度来讲大致分为两种,一种是纯粹的把静态文件独立成单独的域名,放在独…

  • 常见的SQL笔试题和面试题(上):经典50题

    常见的SQL笔试题和面试题(上):经典50题https://zhuanlan.zhihu.com/p/38354000常见的SQL笔试题和面试题(上):经典50题已知有如下4张表:学生表:STUDENT(S#,SNAME,SAGE,SSEX)课程表:COURSE(C#,CNAME,T#)成绩表:SC(S#,C#,SCORE)教师表:TEACHER(T#,TNAME)其中,1)学生表里的字段含义:S#代表学号,SNAME代表学生姓名,SAGE…

  • java 激活码【最新永久激活】

    (java 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html1PA3AFINM4-eyJsa…

  • LDAP 中的 RDN「建议收藏」

    LDAP 中的 RDN「建议收藏」什么是RDN,RDN和DN又有什么关系呢?很多第一次接触到LDAP的童鞋,经常会被一堆名字搞得晕头转向。RDN(relativedistinguishedname)中文翻译就是相对专有名字。一般指dn逗号最左边的部分,如cn=baby。DN是由多个RDN组织而成的。CN=cwikius,ou=Users,dc=jumpcloud,dc=com上面的RDN就不是一个了,这个DN的RDN就有4个,分别是:CN=cwikius ou=Use

发表回复

您的电子邮箱地址不会被公开。

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