在项目中我们引用了System.Web.Routing;   Routing的作用:

确定Controller

确定Action

确定其他参数

根据识别出来的数据, 将请求传递给Controller和Action.

Global.asax中

在App_Start目录中的RouteConfig.cs文件

注册一条路由规则

name 参数:

 规则名称, 可以随意起名.不可以重名,否则会发生错误,路由集合中已经存在名为 “Default” 的路由。路由名必须是唯一的。

url 参数:

 url获取数据的规则, 这里不是正则表达式, 将要识别的参数括起来即可, 比如: {controller}/{action}

defaults 参数:

 url参数的默认值. 我们只建立了一条url获取数据规则: {controller}/{action}  那么这时就会为action参数设置defaults参数中规定的默认值. new { controller = "Home", action = "Index" }

多条路由规则

RouteDebug.dll

RouteDebug.dll调试类库放入packages包下,packages文件夹下包含项目用到的所有第三方库。 然后添加引用RouteDebug.dll到项目中。

在Global.asax.cs注册路由之后添加代码:

RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);   重写了路由调试的地址,将已经注册了的路由规则进行测试。

例如:

  //从繁到简的写法,参数多的写前面/难匹配的写前面   多个路由设计

          //  routes.MapRoute(
//name: "FF",
//url: "{controller}-{action}-{id}-{name}",
//defaults: new { controller = "Home", action = "Index" }
//); // routes.MapRoute(
// name: "DD",
// url: "{controller}-{action}-{id}",
// defaults: new { controller = "Home", action = "Index"}
// ); // routes.MapRoute(
// name: "SS",
// url: "{controller}-{action}",
// defaults: new { controller = "Home", action = "Index"}
// ); routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

启用测试路由,不管你打开那个Action都会跳到它的测试页面去

  RouteConfig.RegisterRoutes(RouteTable.Routes); //注册路由
BundleConfig.RegisterBundles(BundleTable.Bundles);
//RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes); //测试路由

MVC MVC 路由详解的更多相关文章

  1. Extjs MVC开发模式详解

    Extjs MVC开发模式详解   在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开发模式, ...

  2. iOS中MVC等设计模式详解

    iOS中MVC等设计模式详解 在iOS编程,利用设计模式可以大大提高你的开发效率,虽然在编写代码之初你需要花费较大时间把各种业务逻辑封装起来.(事实证明这是值得的!) 模型-视图-控制器(MVC)设计 ...

  3. ext.js的mvc开发模式详解

    ext.js的mvc开发模式详解和环境配置 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开 ...

  4. Ocelot简易教程(三)之主要特性及路由详解

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9664977.html 上篇<Ocelot简易教程(二)之快速开始2>教大家如何快速跑起来一个 ...

  5. Vue 路由详解

    Vue 路由详解 对于前端来说,其实浏览器配合超级连接就很好的实现了路由功能.但是对于单页面应用来说,浏览器和超级连接的跳转方式已经不能适用,所以各大框架纷纷给出了单页面应用的解决路由跳转的方案. V ...

  6. elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))

    一.分词器 1. 认识分词器  1.1 Analyzer   分析器 在ES中一个Analyzer 由下面三种组件组合而成: character filter :字符过滤器,对文本进行字符过滤处理,如 ...

  7. Express的路由详解

    Express的路由详解 http://www.jb51.net/article/76203.htm

  8. [转载]Ocelot简易教程(三)之主要特性及路由详解

    上篇<Ocelot简易教程(二)之快速开始2>教大家如何快速跑起来一个ocelot实例项目,也只是简单的对Ocelot进行了配置,这篇文章会给大家详细的介绍一下Ocelot的配置信息.希望 ...

  9. Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解

    如需转载,请注明出处:Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解 最近一段时间生病了,整天往医院跑,也没状态学东西了,现在是好了不少了,也该继续学习啦!!! ...

  10. iOS路由详解

    本文如题,路由详解,注定是一篇详细解释iOS路由原理及使用的文章,由于此时正在外地出差,无法详细一一写出,只能不定时的补充. 一.什么是iOS路由 路由一词来源于路由器,可以实现层级之间消息转发的功能 ...

随机推荐

  1. IOS设计模式学习(18)模板方法

    1 前言 模板方法模式是面向对象软件设计中一种非常简单的设计模式.其基本思想是在抽象类的一个方法定义“标准”算法.在这个方法中调用的基本操作由子类重载予以实现.这个方法成为“模板”.因为方法定义的算法 ...

  2. DS18B20

    DS18B20驱动 [ 2012-5-14 12:01:00 | By: 吴师傅 ]   14 推荐 一.概述 DS18B20是一种单总线数字温度传感器.測试温度范围-55℃-125℃,温度数据位可配 ...

  3. Linux常见面试题

      一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 索引节点来标 ...

  4. URL与URI的区别

    URI—Universal Resource Identifier通用资源标志符Web上可用的每种资源如HTML文档.图像.视频片段.程序等都是一个来URI来定位的URI一般由三部组成①访问资源的命名 ...

  5. Linux 数据 CD 刻录

    http://www.cyberciti.biz/tips/linux-burning-multi-session-cds-on-linux.html #mkisofs -dvd-video -inp ...

  6. Asp.Net WebAPI Get提交、Post提交处理

    1.启用跨域提交 <system.webServer> <httpProtocol> <customHeaders> <add name="Acce ...

  7. (转)C#中的委托,匿名方法和Lambda表达式

    简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个Fir ...

  8. Polygon对象

    Polylgon对象是由一个或多个Ring对象的有序集合,它可以是由单个Ring 对象构成,也可以使用多个Ring组成.Polygon通常用来代表有面积的多边形矢量对象,如行政区,建筑物等.

  9. NSUserDefaults的使用方法

    NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等,用户再次打开程序或开机后这些数据仍然存在.默认系统允许应用程序自定义它的行为去迎合用户的喜好.你可以在程序运行的时 ...

  10. Swift 面向对象

    import Foundation class Hi{ func sayHi(){ print("HI jinpanpang") } } class Hello:Hi { var ...