微软的MVC框架有一个特点是通过路由来请求。例如:
访问Http://xxxxx:80/Home/Index 这样一个地址
路由会确定名字为Home这个控制器,在这个控制器下找到名为Index的行为方法,然后返回View。View也就是传统的html(不准确)
按照以往我们都是直接在地址栏里输入:Http://xxxxx:80/index.html 直接去访问根目录下的某个html文件。
在web开发中,路由“route”是指根据url分配到对应的处理程序。
微软MVC中的路由的作用:
1.确定控制器(Controller)
2.确定行为方法(Action)
3.确定其它参数
4.根据识别出来的数据,传递给对应的Action。
打开Global.asax 全局设置文件,里面的
RouteConfig.RegisterRoutes(RouteTable.Routes); //注册路由
再按F12 可以跳过去查看对应的实现。 简单说一下,当整个项目运行刚开始的时候,就会先注册相关的路由的信息。
项目会给我们默认生成一个路由规则。注意看传过来的参数是一个RouteCollection 是一个路由规则集合。因此在整个项目中可以有多个路由规则。简单点说就是url地址的格式可以有很多种。
name 是路由的名字
url 是这个路由的地址格式
defaults 是默认的数据 如果url后面用户什么都不填,那么按照上面的例子,将请求User控制器下的Login方法,参数可以不要。
1.小范围的路由规则应该写在前面,大范围的路由规则写在后面。
2.路由规则名字不能重复。
3.一个项目中可以注册很多个路由规则。
(图片来自网络)
当发送请求后,从路由规则中的第一个开始匹配,第一个不匹配,就下一个,如果成功了,就结束了。
获取参数
路由会将数据传递给action,如果action有参数,那么会转化成对应的参数,如果没有写参数,那么数据可以从routeData里面找。