学习ASP.NET MVC(二) 识别URL的Routing组件2011-10-14 博客园 ziqiu.zhang一.摘要本篇文章从基础到深入的介绍ASP.NET MVC中的Routing组件. Routing翻译过来是"路由选择", 负责 ASP.NET MVC的第一个工作:识别URL, 将一个Url请求"路由"给Controller. 由于今天下午参加了博客园北 京俱乐部的聚会, 所以本篇文章的完工时间晚了点, 还好也是在今天发表, 总算兑现了"每日一篇"的承诺 . 不久丁学就会发布北京博客园聚会活动的资料了, 我在这里先预告了!二.承上启下第一篇文章中我们已经学会了如何使用ASP.NET MVC, 虽然其中还有很多的细节没有深入了解, 但是对 基本的处理流程已经有了认识:来了一个Url请求, 从中找到Controller和Action的值, 将请求传递给 Controller处理. Controller获取Model数据对象, 并且将Model传递给View, 最后View负责呈现页 面.而Routing的作用就是负责分析Url, 从Url中识别参数, 如图:

这一讲就让我们细致的了解System.Web.Routing及其相关的扩展知识.三.Routing的作用第一讲中实例的首页地址是: localhost/home/index我们发现访问上面的地址, 最后会传递给 HomeController中名为index的action(即HomeController类 中的index方法).当然服务器端不会自己去实现这个功能,  关键点就是在Global.asax.cs文件中的下列代码:
    public static void RegisterRoutes(RouteCollection routes)
    {
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
      routes.MapRoute(
        "Default",                       // Route name
        "{controller}/{action}/{id}",              // URL with  parameters
        new { controller = "Home", action = "Index", id = "" } //  Parameter defaults
      );
    }
    protected void Application_Start()
    {
      RegisterRoutes(RouteTable.Routes);
    }