路由Route
路由规则Route:可以查看源代码了解一下构造方法,需要指定路由格式、默认值、处理器三个值
路由数据RouteData:当前请求上下文匹配路由规则而得到的一个对象,可以在Action中通过RouteData.GetRequestString(“controller/action”)获取本此请求中控制器或行为的真实名称
路由集合RouteCollection:存放路由规则的集合Collection<RouteBase>,一个MVC项目中,可以配置多个路由规则,按照键值对的格式存储到路由集合中
路由表RouteTable:类中包含静态的RouteCollection属性,完成所有路由规则的全局存储,在Global中完成注册

打开Global文件,来看一下路由是如何注册的
调用MapRoute方法进行注册
命名参数:在调用方法时,可以通过“参数:值”的格式进行调用,好处:注释,参数位置可以与声明时不一致
查看MapRoute方法的重载

参数name
设置路由规则的名称
必须是唯一的,重复会报异常
默认添加”Default”的路由规则

参数url
设置url的路由规则,可变的值使用{}括起来
关键字controller、action名称不可变
示例:自定义一个新闻频道路由规则
可以使用?key=value的格式传递参数
通过路由规则,可以省略?与key部分,直接传递值,在action的参数中自动装配
优化:如果传递的参数比较多,为action定义多个参数非常乱,则将所有的参数封装到一个类中,将该类定义为action的参数类型

注意:对于一个网站,为了SEO友好,一个网址的URL层次不要超过三层
示例:localhost/{频道}/{具体网页},其中域名第一层, 频道第二层, 那么最后的网页就只剩下最后一层了. 如果使用默认实例中的“{controller}/{action}/{id}”的形式会影响网站的SEO,可以使用”/”之外的其它字符进行分隔,如”-”,但这时会进行严格匹配,即必须要有-才可以匹配到,默认值会失效

参数defaults
设置路由规则中参数的默认值
类型为object,可以传递一个匿名对象,属性取决于规则中定义的参数
参数UrlParameter.Optional表示可选的只读参数
如果在实际的url中没有指定路由规则中某些参数,则会使用默认值作为参数的值使用

参数defaults

设置路由规则中参数的默认值
类型为object,可以传递一个匿名对象,属性取决于规则中定义的参数
参数UrlParameter.Optional表示可选的只读参数
如果在实际的url中没有指定路由规则中某些参数,则会使用默认值作为参数的值使用

参数constraints
设置路由规则的约束
类型为object,可以传递一个匿名对象,属性取决于规则中定义的参数
参数是正则表达式字符串,如controller=“^[a-z]+$”

总结
路由规则可以注册多条
路由规则的名称不能重复
路由规则有顺序,并且按照顺序进行匹配;建议子频道的路由规则配置在前面
路由规则可以设置约束
路由规则匹配的控制器可以设置命名空间约束

Asp.Net MVC part3 路由Route的更多相关文章

  1. 理解ASP.NET MVC的路由系统

    引言 路由,正如其名,是决定消息经由何处被传递到何处的过程.也正如网络设备路由器Router一样,ASP.NET MVC框架处理请求URL的方式,同样依赖于一张预定义的路由表.以该路由表为转发依据,请 ...

  2. 返璞归真 asp.net mvc (2) - 路由(System.Web.Routing)

    原文:返璞归真 asp.net mvc (2) - 路由(System.Web.Routing) [索引页] [源码下载] 返璞归真 asp.net mvc (2) - 路由(System.Web.R ...

  3. asp.net mvc 特性路由(MapMvcAttributeRoutes)的应用

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012835032/article/details/51160824asp.net mvc 特性路由 ...

  4. ASP.NET MVC 自定义路由中几个需要注意的小细节

    本文主要记录在ASP.NET MVC自定义路由时,一个需要注意的参数设置小细节. 举例来说,就是在访问 http://localhost/Home/About/arg1/arg2/arg3 这样的自定 ...

  5. ASP.NET MVC的路由

    好久没写博文了,感觉最近好像少了点动力.唉!这回就看看这个MVC的路由. 说这个路由机制其实不是MVC里面特有的,ASP.NET里面本身就有的,只不过在WebForm里面一般比较少用,而在MVC里就是 ...

  6. ASP.NET MVC API 路由生成规则

    我们都知道调用ASP.NET MVC的某些API函数(诸如:Url.Action.RedirectToAction等)可以生成URL,ASP.NET MVC会根据调用API函数时传入的参数去匹配系统定 ...

  7. ASP.NET MVC 之 路由配置

    主要操作在App_Start 目录下的 RouteConfig.cs 文件. 一.Url构造方式 1.命名参数规范+匿名对象 routes.MapRoute( name: "Default& ...

  8. ASP.NET MVC:自定义 Route 生成小写 Url(转)

    先给出本文中测试用的 controller: public class PersonsController : Controller { public ActionResult Query(strin ...

  9. ASP.NET MVC编程——路由

    框架自动生成的路由配置 上图中,路由配置文件为App_Start文件夹下的RouteConfig.cs. 代码如下: public class RouteConfig { public static ...

随机推荐

  1. 7月24号day16总结

    一开始显示出现问题,js路径不能应用,因为用的是springMVC框架书写,所以有路径的保护和静态引用地址时需要注意的地方 今天进行了最后项目的优化,包括map清洗数据部分的代码和echarts显示的 ...

  2. jquery从零起步学

    html: <HTML> <head> <meta http-equiv="content-type" content="text/html ...

  3. java使用JNA调用dll

    1.自己搞一个dll出来.参考下面链接 http://blog.csdn.net/lqena/article/details/46357165. 2.下载jar jna-4.2.1.jar. 3.复制 ...

  4. MyEclipse快捷键大全(转)1

    Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+ ...

  5. 大数问题,通常用JAVA

    e.g. HDU1002 简单加法 import java.math.BigInteger; import java.util.Scanner; public class Main { public ...

  6. bzoj2683/4066 简单题

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2683 http://www.lydsy.com/JudgeOnline/problem.ph ...

  7. Django-csrf跨站请求伪造

    方式一: 下列代码插入ajax提交之$.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}' }, }); 注意:该代码中包含模板渲染语 ...

  8. ANDROID开发笔记(一)

    manifest, 英['mænɪfest] vt. 显示,表明;证明;使显现 adj. 明白的,明显的 n. 货单,旅客名单 wrap_content, 根据实际内容调整   原来新版的ADB已经支 ...

  9. CentOS erlang安装

    1. http://www.erlang.org/下载erlang,解压缩,进入目录,检查环境 alex$ cd otp_src_18. alex$ ./configure ************* ...

  10. Linux内核学习之中断 中断本质【转】

    转自:http://www.linuxidc.com/Linux/2011-11/47657.htm [中断概述] 中断本质上是一种特殊的电信号,由硬件设备发向处理器.异常和中断的不同是异常在产生时必 ...