asp.netmvc通过修改路由规则来实现页面的URL多参数传递

【原文】http://blog.csdn.net/risingsun001/article/details/9068187

修改MVC3中的路由规则

在Global.asax.cs中,修改路由规则

原路由规则

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                "Default", // 路由名称
                "{controller}/{action}/{id}", // 带有参数的 URL
                new { controller = "Home", action = "Index", id = UrlParameter.Optional} // 参数默认值
            );

MapRoute方法在RouteCollectionExtensions里有6个重载版本!在这里我挑了一个参数最多的重载版本来进行介绍

public static Route MapRoute(
    this RouteCollection routes,
    string name,
    string url,
    Object defaults,
    Object constraints,
    string[] namespaces
)

name:路由在路由列表里的唯一名字(两次MapRoute时name不能重复)

url:路由匹配的url格式

defaults:路由url {占位符} 的默认值

constraints:url的 {占位符} 的约束

namespaces:这个是用于设置路由搜索的控制器命名空间!

比如,我们可以修改为下面的规则

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                "Default", // 路由名称
                "{controller}/{action}/{uid}_{token}_{others}.html", // 带有参数的 URL
                new { controller = "Home", action = "Index", uid = UrlParameter.Optional, token = UrlParameter.Optional,others = UrlParameter.Optional} // 参数默认值
            );

如果访问的URL地址如:http://localhost/home/index/123_tokenvalue_othersvalue.html

controller="Home", action="Index", uid=123, token=tokenvalue, others=othersvalue

获取和上面的方法一样。

关于Route 的详细用法和说明,大家看MSDN 上的资料吧,这里给个连接:

ASP.NET Routing:http://msdn.microsoft.com/en-us/library/cc668201.aspx?cs-save-lang=1&cs-lang=csharp

更多相关文章
  • 注意:本文所讲述的并非MVC框架.ASP.NET 3.5 SP1中提供了一种路由技术.ASP.NET 路由是一种能够使我们在ASP.NET应用程序中利用一种可描述的.对搜索引擎和用户很友好的URL访问资源的技术.这种URL不必物理地映射到真正的资源.比如:http://dotnet.aspx.cc/ ...
  • ASP.NETMVC验证-自定义验证规则、验证2个属性值不等待验证
    提示:保存后才提示错误信息 自定义验证特性,继承ValidationAttribute并实现IClientValidatable 这次重写了基类的IsValid()方法的另外一个重载,因为该重载包含了验证上下文ValidationContext,从中可以获取属性及属性值. using System. ...
  • ASP.NetMVC开发基础学习笔记1:走向MVC模式
    链接地址:http://blog.jobbole.com/84992/ 一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/blog/index.aspx的 ...
  • 转深入ASP.NETMVC之二:路由模块如何工作
    本文转自:http://www.cnblogs.com/yinzixin/archive/2012/11/05/2754483.html 摘要: 上文分析了UrlRouting模块何时会被触发,本文重点分析路由模块是如何工作,以及如何利用路由模块实现Area. 先看路由模块的PostResolveR ...
  • 转ASP.NETMVC的帮助类HtmlHelper和UrlHelper
    本文转自:http://www.cnblogs.com/greatandforever/archive/2010/04/20/1715914.html?login=1 在ASP.NET MVC框架中没有了自己的控件,页面显示完全就回到了写html代码的年代.还好在asp.net mvc框架中也有自带 ...
  • 使用IdleTest进行TDD单元测试驱动开发演练3之ASP.NETMVC
    一.[前言] (1)本文将用到IOC框架Unity,可参照<Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备>(2)本文的解决方案是基于前述<使用IdleTest进行TDD单元测试驱动开发演练(1)>.<使用IdleTest进行TDD单 ...
  • 在ASP.NETMVC实现购物车,尝试一种不同于平常的购物车显示方式
    通常,我们看到的购物车是这样的:     虽然这种购物车显示方式被广泛运用,但我个人觉得不够直观.如果换成这样呢?     本篇的源码放在了:https://github.com/darrenji/ShoppingCartInMVC   以上购物车页能实现的效果包括:1.购物车明细:显示订购数量.总 ...
  • 配置项 application/config/routes 就是说的这里!   路由控制 让你的页面按照你希望的url方式去访问   路由自定义 帮助你实现路由的寻址,也就是key($var) =>value($url) 意义就是在向服务器发出请求之前的一步,你还可以再这里改变他寻址路径,也就 ...
一周排行
  • 现在开始介绍php+mysql+shell监控系统 1.目的此监控系统主要是通过php+mysql+shell的方式,通过shell脚本对各个机器的其各个服务进行监控,达到及时的了解其各个应用服务的状态(如果宕掉与启 ...
  • 现在的我喝醉酒了,正躺在床上,可并不影响我写这篇文章,这是我一直的梦想.人的一生,总得有梦想,现实很残酷,可我们不能被现实羁绊.今天,元春要跟您分享元春内心处一直拥有的梦想,即使不曾实现,但我相信它总有一天会实现,我 ...
  • mysql占用服务器cpu过高的原因以及解决办法 排查方法 :mysql占用cpu下降了
  • 在xshell或者其他终端软件执行命令,使用nohup commond & 关闭xshell窗口的时候命令照样被关闭了,这种情况可以使用命令screen,或者tmux命令screen,tmux的功能很强大,可 ...
  • nginx限制访问速度
    今天在查看资料时发现nginx有个参数,可以限制访问速度.于是研究了一下.location ...
  • 本程序通过JFrame实时显示本机摄像头图像,并将图像存储到一个缓冲区,当用户用鼠标点击JFrame中任何区域时,显示抓取图像的简单动画,同时保存缓冲区的图像到磁盘文件中.点击JFrame关闭按钮可以退出程序. 实现 ...
  • /* 格式化金额 */function formatAmount(s, n) {      n = n > 0 && n <= 20 ? n : 2;      s = parseFloa ...
  • 前言学习了一段时间Git,感觉操作也就是git commit,git pull ,git push ,git add,git submodule,git stash,git branch,git checkout,g ...
  • 有些系统安装Adobe PDF时打印机安装不了,是因为操作系统优化后,没有安装系统还原,需要重新安装系统还原.插入系统盘,打开"C:\WINDOWS\inf",找到"sr.inf&quo ...
  • 最近去清华大学进修课修EDP.看到清华大学理念里的一句话:百战归来再读书.我非常喜欢这句话.这句话的伦理哲学是我们应该崇尚的.有博友问我,他现在在做一家软件公司的顾问,可是感觉对企业的知识太少了.他在选择是否应该进入 ...