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) 意义就是在向服务器发出请求之前的一步,你还可以再这里改变他寻址路径,也就 ...
一周排行
  • 不闪式3D电视受用户推崇是必然趋势
    近年来,基于互联网信息技术的普及和网络概念的火热,大量以互联网载体为依托的在线影视也开始出 ...
  • 触控的手牌—CocosCreator
    科普 Cocos Creator是触控最新一代游戏工具链的名称.如果不太清楚的,可以先看一 ...
  • 题目:判断00之间有多少个素数,并输出所有素数.程序分析:首先明白什么是素数,只能被1和本身整除的数,用循环遍历00之间的数,然后用101~200间的书整出2到该数前面一个数,比如是113,我们1 ...
  • package com.palic.elis.tjs.ceis.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java ...
  • win7下如何建立ftp服务器分步阅读百度经验:jingyan.baidu.com前段时间正在做一个项目,需要上传东西到ftp服务器,纠结于如何建立ftp服务器.经过一番摸索.终于成功建立ftp服务器.现将我的经验跟 ...
  • Exchange2010迁移至Exchange2013系列之一:系列架构介绍
    Exchange 2010 迁移至Exchange 2013系列之一:系列架构介绍Tech ...
  •        早在1994年,sun公司的一个研究小组就在致力于研发一种分布式控制系统,它使用户可以发送E-mail给电冰箱等家用电器,从而对其信息交换和远程控制,后来该项目直接导致一种划时代的编程语言——java语 ...
  • Eclipse的WTP支持Javascript的代码补全功能但是很简单,而且不支持jQueryjQueryWTP的目的就是让Eclipse WTP支持jQuery需要说明的是该插件对于MyEclipse等基于Ecli ...
  • @RequestParam [email protected],前端传参的URL: url = “${ctx}/main/mm/am/edit?Id=${Id}&name=${name}” 后 ...
  • Route switch局域网技术小结