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) 意义就是在向服务器发出请求之前的一步,你还可以再这里改变他寻址路径,也就 ...
一周排行
  • 默认情况下/root/用户下有如下配置文件:[root@oldboy ~]# ls -a .  ..  .bash_history  .bash_logout  .bash_profile  .bashrc如果误删除 ...
  • Ext 核心开发人员Jack的回答是,TabPanelItem在关闭时并不会对自定义到tab中的元素做特殊处理,这部分工作必须在控件外来完成.另一方面, 相关资料称IE在iframe元素的回收方面存在着bug,在通常 ...
  • python__slots__使你的代码更加节省内存
          在默认情况下,Python的新类和旧类的实例都有一个字典来存储属性值.这对于那 ...
  • 1.Nginx1.1.安装Nginx 的中文维基 http://wiki.codemongers.com/NginxChs 下载 Nginx 0.6.26(开发版)(请下载最新版本)tar zxvf nginx-0. ...
  • Memcached源码安装与配置
    主机环境: CentOS 6.6 x86_64一,安装memcached1,由于memca ...
  • 3 5 6 72 3 1 04 5 6 92 3 4 42 2 1 04 5 0 9假如把2列和3列的值作为新的第5列,第5列的平均值为avg5,求第5列中大于avg5的行数.awk 'BEGIN{while(get ...
  • 作为一名项目施工人员,抚琴煮酒前前后后也实施过一些大大小小的项目了,有并发量大的CDN广告网站,还有证券类资讯网站以及电子商务网站等,还有就是一些并发不大但要求作成HA的小型网站等,感觉其实在实施过程还是有蛮多技巧和 ...
  • 技术人员如果不从事管理,是不是永远没有出头之日呢?在国内,搞技术也来越不吃香了.人们都想着投身公务员的行列,或是从事商业自己当老板.许多当年好友一谈起自己的技术事业来,就仿佛自己正驾驶着诺亚方舟,意气风发挥斥方遒.然 ...
  • 1.sun.net.ftp.*;   这是一个不被官方支持的,但是放在JDK下面的FTP包.正因为不被支持,所以没有官方提供API,这是其最大的缺陷之一.最重要由于不是官方支持的,所以文档也是没有的    [url] ...
  •  11.三次去美国参加IBM大会,连上七天网的时候,我上了IBM的网站,居然找到我笔记本驱动程序有更新,这个对于我来说震动极大.12.连了网之后我发现互联网就是窗口,我能够通过互联网能够第一时间了解到各方面的信息,得 ...