Routing网址路由在ASP.NET MVC中主要有2个目的:(作用主要帮助自己了解ASP.NET MVC运行时的先后顺序,进而减少犯错的机会)
1.比对通过浏览器穿过来的HTTP请求,并对应到适当的Controller下的Action进行处理.
2.决定ASP.NET MVC应该输出什么样子网址响应给浏览器。
客户端请求->URL Routing->Route->Route Handle->HttpHandler
HttpHandler=请求处理中心.
下发到MVCHandle 请求处理之后开始生命周期.
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional } ); } }
routes:所有应用程序的入口. 是从Global.aspx下的Application_Start 下的RouteTable..Routes 过来的.
routes.IgnoreRoute 用来定义不通过的路由.{resource}.axd/{*pathInfo} 指所有的*.axd的文档网址,用来屏蔽 ASP.NET WebForm种的 *.axd
routes.MapRoute 下的可以是我们自定义的路由网址.
name:随意写不重复就行.
url:就是路由地址了.自定义
defaults:当运行查找不到当前地址时默认执行的路由;指开始时的.
路由的过程运用了(具名参数比对->自查百谷)
ASP.NET MVC 生命周期
1.网址路由比对.
2.运行Controller与Action
3.运行View并回传结果.
客户端请求(request)->URL Routing->Route->Route Handle->HttpHandler->Controller factory->Controller ->view factory->view ->响应(response) 整个生命周期