基础才是重中之重~你是否真正在用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 十大经典思维面试题_JS面试题大全

    十大经典思维面试题_JS面试题大全年轻人你不讲武德,耗子尾汁~~~总结就是为了形成自己的js知识网,提升自己,加油!开始干1、介绍js的基本数据类型  答:Undefined、Null、Boolean、Number、String2、js有哪些内置对象? 答:数据封装类对象:Object、Array、Boolean、Number和String  其他对象:Function、Arguments、Math、Date、RegExp、Error  3、this对象的理解 答:this总是指向函数的直接调用者(而非间接调用者

    2022年8月26日
    7
  • 相机的光圈大小有什么区别「建议收藏」

    相机的光圈大小有什么区别「建议收藏」很多人单反相机已经用了很久了,但是对于光圈的设置还是不是很清楚,大光圈和小光圈到底有什么区别?拍摄一些场景到底要用什么参数?一起来看看吧。方法/步骤什么叫大光圈:在单反相机当中有一个指标叫做光圈,光圈

    2022年8月4日
    10
  • Mac虚拟机联网(vmware虚拟机怎么联网)

    下载VMwareFusion安装,下载centOS7镜像并安装虚拟机查看本机的vmnet1和vmnet8MAC系统下通过终端的ifconfig命令可以得知当前主机的vmnet1(192.168.118.1)和vmnet8(192.168.2.1) 仅主机模式下通过vmnet1使得主机和虚拟机可以通信 NAT模式下通过vmnet8使得主机和虚拟机可以通信Mac终端cd/Libr…

    2022年4月12日
    138
  • TCP和UDP的区别是什么_socket tcp udp区别

    TCP和UDP的区别是什么_socket tcp udp区别TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图IP:网络层协议;(高速公路)TCP和UDP:传输层协议;(卡车)HTTP:应用层协议;(货物)。HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。SOCKET:套

    2026年2月1日
    4
  • DropDownList1 各种属性

    DropDownList1 各种属性一些常用的属性:DataMember当数据源包含多个不同的数据项列表时,获取或设置数据绑定控件绑定到的数据列表的名称。(从DataBoundControl继承。)DataSource获取或设置对象,数据绑定控件从该对象中检索其数据项列表。(从BaseDataBoundControl继承。) DataSourceID获取或设置控件的ID,数据绑定控件从该控件中检索

    2022年10月16日
    3
  • 分布式 – 公司使用什么RPC框架,聊聊你理解的RPC原理

    分布式 – 公司使用什么RPC框架,聊聊你理解的RPC原理不啰嗦,我们直接开始!引言以前在做一个规模不大的系统的时候,用的是单体架构,一台服务器部署上一个应用和数据库也就够了。但是现代化互联网公司业务逐渐扩大,服务逐渐细分,很多服务之间需要通过远程分布式接口调用通讯,即不同的服务不是部署在同一个服务器上,比如订单服务在A服务上,付款服务在另一个服务上,有同步调用、也有异步调用,这个时候我们就需要远程调用不同的服务,使用的时候调用远程服务就像调用本地服务一样,引入一个jar包,就能通过this.xxx()一样调用远程服务,这背后的机制就是通.

    2022年5月12日
    34

发表回复

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

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