一.摘要
本篇文章從基礎到深入的介紹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);
}