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

简介:

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

今天要说的:

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

二 快速完成一个分类筛选

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

 

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

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

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

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

二 快速完成一个分类筛选

代码如下:

 <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路由功能~再续,如需转载请自行联系原博主。

目录
相关文章
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-前端路由解析和渲染4
前端学习笔记202305学习笔记第三十一天-什么是mvc-前端路由解析和渲染4
38 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-前端路由解析和渲染2
前端学习笔记202305学习笔记第三十一天-什么是mvc-前端路由解析和渲染2
33 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-前端路由解析和渲染3
前端学习笔记202305学习笔记第三十一天-什么是mvc-前端路由解析和渲染3
40 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-vc和路由的绑定1
前端学习笔记202305学习笔记第三十一天-什么是mvc-vc和路由的绑定1
35 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-vc和路由的绑定2
前端学习笔记202305学习笔记第三十一天-什么是mvc-vc和路由的绑定2
29 1
|
9月前
|
开发框架 前端开发 .NET
ASP.NET Core MVC 从入门到精通之路由
ASP.NET Core MVC 从入门到精通之路由
98 0
|
前端开发 网络协议 网络架构
Gin从入门到精通—搭建MVC项目结构学习路由配置
Gin从入门到精通—搭建MVC项目结构学习路由配置
354 0
|
缓存 JavaScript 前端开发
【nodejs】让nodejs像后端mvc框架(asp.net mvc )一样处理请求--路由限制及选择篇(2/8)【route】
文章目录 前情概要 上文中的RouteHandler中有一个重要方法GetActionDescriptor没有贴代码和说,接下来我们就说一说这个方法。 使用controllerName、actionName、httpmethod获得唯一匹配的处理函数描述对象 直接上代码,看代码注释即可 //acti...
940 0
|
缓存 JavaScript 前端开发
【nodejs】让nodejs像后端mvc框架(asp.net mvc )一样处理请求--自动路由篇(1/8)【route】
文章目录 前情概要 在使用express框架开发的时候,每加一个请求,都在增加一条route请求规则,类似于下面的代码,很烦有木有! app.use('/myroute path', (req, res, next) => { //dosomething }) 我们难道不能再智能一点点么,学习后端mvc框架一样,比如加个标记,或者默认规则直接自动映射嘛。
1096 0
|
前端开发
mvc 路由伪静态实现
很多网站都采用伪静态,例如以html、shtml等结尾的url,mvc的路由可以轻松实现。 配置路由 默认路由配置 添加伪静态路由 mvc的路由原理是从上往下匹配的,所以只需要在后面添加自己配置的路由即可 public static void RegisterRoutes(RouteCollection routes) { routes.
1088 0