标签:
一、Routing
ASP.NET MVC的“网址路径”和“文档路径”的对应关系是通过“网址路由(Routing)”来定义的,我们可以从项目内的App_Start\RouteConfig.cs文档可以看到一个RegisterRoutes方法:
public static void RegisterRoutes(RouteCollection routes)
{
route.IgnoreRoute("{resource}.axd/{*pathInfo}");
route.MapRoute(
name:"Default",
url:"{controller}/{action}/{id}",
defaults:new{controller="Home",action="Index",id=UrlParameter.Optional}
);
}
RegisterRoutes方法中:
IgnoreRoute为设置.axd等格式的网址路径不通过ASP.NET MVC运行。
MapRoute方法是定义ASP.NET MVC网址路由最主要的方式:name——路由名称;url——设置网址路径如何对应到控制器、动作与路由值;defaults——设置{controller}、{action}、{id}这3个路由参数的默认值。
二、ASP.NET MVC生命周期
ASP.NET MVC生命周期三大过程为:
1.网址路由比对;
默认情况下,如果请求的网址可以对应到相对于网站根目录下得实体文档,则不会通过ASP.NET MVC进行处理,而是会自动略过所有网址路由比对,直接交给IIS或者ASP.NET。如果要改变这种行为,可以在Global.asax的Application_Start()事件最前面将RouteTable.Routes.RouteExistingFiles设置为true,这样UrlRoutingModule模块就不会先判断是否存在实体文档,而是以RegisterRoutes定义的网址路由规则进行比对,如果比对成功,就会进入MVC运行周期,比对失败,就会将运行权利交还给IIS。
2.运行Controller与Action;
3.运行View并回传结果。
标签:
原文地址:http://www.cnblogs.com/yys113/p/4567262.html