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) 意义就是在向服务器发出请求之前的一步,你还可以再这里改变他寻址路径,也就 ...
一周排行
  • SystemCenter 2012 R2 Operations Manager1.系统组件要求:★ 管理服务器磁盘空间:%SYSTEMDRIVE% 至少要 求 1024 MB 可用硬盘空间.服务器操作系统:必须是Wi ...
  • 一般接手Linux 就和网络相关 所以一般都要接触到这些网络命令: 一   ifconfig 1.作用    ifconfig用于查看和更改网络接口的地址和参数,包括IP地址.网络掩码.广播地址,使用权限是超级用户. ...
  • include()The include() 语句包括并运行指定文件. 以下文档也适用于 require().这两种结构除了在如何处理失败之外完全一样.include() 产生一个警告而 require() 则导致一 ...
  • 到现在 ,开学也差不多有20多天了. 一直比较忙,有点透不气来. 每天晚上,都要1.2点才睡. 身体有些疲倦. 学校的机器,也有些故意.这一段出问题的很多. OK,记录一下,以备不时之需. 1.两台机器,开机引导XP ...
  • 虽然网上有很多整理的博客,但我还是想自己弄一个,因为那些博客不一定符合我的使用习惯,我只记载自己常用的快捷键,以后用了新的再添上去. ctrl+D 复制当前行或选中内容 ctrl+Y 删除当前行或选中内容(Ctrl+ ...
  • 控制流语句:1.if语句lines = 1543if lines < 1000:  print("small")  elif lines < 10000:  print("m ...
  • Vbs程序批量修改防火墙路由
    Vbs程序批量修改防火墙路由近期朋友在外面做了一个项目,需要对网络架构做整改,明白需求后, ...
  • SysCeo_Win7_Classic_V7.8_32位+64位(6in1)纯净经典版
    ClassicV7.8六合一包含映像说明:1.纯净安装版(IE8):无LOGO,无补丁,无 ...
  • date  可以用来显示或设定系统的日期与时间.1.格式:date [参数]... [+格式]2. 选项:必要参数:%H 小时(以3来表示). %I 小时(以2来表示). %K 小时(以3来表示 ...
  • Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. '*' Matc ...