1、路由在进行匹配时,会默认匹配第一个路由信息
2、路由规则的{control}和{action}时不能改变的
3、路由规则可以中间字符可以随便定义,但是{control}和{action}必须使用一个分隔符
4、路由约束:url:“{control}/{action}/{id}”和url:“{control}/{action}/{name}”
--|:id约束:new{id=@“\d”} 要求必须是数字
--|:id约束:new{name=“[a-z]+”} 要求必须是name必须是字母
5、在视图使用html.routelink(),可以指定路由名称
6、在使用第三方路由RouteDebug时,只有action返回的是视图时,才会追加信息,所以当访问的是验证码图片时,不会最佳路由匹配信息
7、当MVC请求一般处理程序时,因为MVC是基于asp.net管道事件实现的,当找不到相应的控制器和action时,就会请求相应路径的一般处理程序。
8、区域路由在global文件一开始就完成了注册(会到bin目录下找所有继承了AreaRegistration的类),区域路由AreaName就指定了区域所在的区域文件夹。当区域路由匹配后加载视图时,要通过AreaName来加载相应文件夹下的view视图
9、mvc匹配路由后,会在bin目录下的文件夹下找符合匹配信息的control类对象。所以当不做任何处理时,外部的控制器也会被匹配到。但是视图访问不到,因为视图会自动到主程序集下去找。
10、所以当使用外部区域时,应该添加区域路由注册类。并声明AreaName
11、当路由匹配时,会在默认根据区域注册类所在的namespace中去查找control类,所以需要在路由中定义好namespace。