使用路由的好处:
- 1、能够根据系统需求,灵活的划分请求规则(不同模块请求的URL是不一样的)
- 2、屏蔽物理路径,提高系统的安全性,以上情况是无法根据URL分析视图文件在站点目录中的位置
- 3、有利于搜索引擎优化,可以将URL请求统一规范,以后维护中,如果页面发生变化,URL可以保持不变
路由系统主要职责:将各种URL请求转发给控制器处理
路由的双向系统功能:
URL正向映射到Controller和Action:根据用户输入的URL触发对应控制器并调用动作方法
Controller和Action还可以反向映射并构造URL:根据控制器和行为构造出URL供用户使用
路由定义规则和应用
路由URL匹配要求
- 1、字面量:必须严格匹配,即实际请求中的字符串和路由模式中的字面量字符必须要完全一致
- 2、大小写:URL模式匹配的时候不区分大小写
- 3、常量:没有包含在大括号内的信息被作为常量对待
URL模式匹配原理
- 规则1:字面量必须严格匹配
- 规则2:URL模式不区分大小写
多路由匹配的选择:如果一个URL能够在多个路由中匹配,则默认使用第一个匹配的路由
UrlPrameter.Optional参数的作用:该参数可以作为路由参数的默认值
当需要让"/Home/Index"或"/Home"能正常匹配,但又不希望赋一个无意义的值,可以使用该参数
1.提到{controller}/{action}
必不可少:在一个实际的MVC系统中,{controller}/{action}必不可少,如果缺少就会出现找不到路径而出错
约定规则:这个占位符是MVC里面约定的,并且会被解析成控制器和对应的方法
位置灵活:这两个约定的占位符可以在任意位置
2.其他占位符
仅仅是占位:比如{aa}/{bb}/{cc},这里面的aa不能被解析成控制器,bb也不能解析成动作方法
默认要求:一个路由中,如果没有规定{controller}/{action},或者只是规定其中之一,则没有规定的部分将使用默认值
3、匹配顺序
- 优先使用:多个路由匹配一个URL,则优先匹配的会使用
- 尽量避免:定义多个路由时,尽量避免出现多匹配