MVC中,用户访问的地址并不映射到服务器中对应的文件,而是映射到对应Control里对应的ActionMethod,由ActionMethod来决定返回用户什么样的信息。而把用户访问的地址对应到对应的Action(当然也可以是对应的文件)的工作有路由系统完成,这其中许多复杂的处理由.net自动完成,而开发者需要告诉.net用户的访问地址和对应Action的具体映射关系。
MVC中路由系统可以完成两件任务:
1,处理从用户接收到得URL,映射到对应的Action;
2,将某个Action根据路由系统的映射关系,反映射成符合该路由系统结构的URL(动态生成URL,当网站结构改变时,该URL同样会自动改变);
一,处理incoming的URL:
路由的具体映射关系是在Global.aspx文件里定义的:
public static void RegisterRoutes( RouteCollection routes)
{
routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );
routes.MapRoute(
null,
"",// null route
new { controller = "Product" , action = "List", category = ( string)null , page = 1 },