URL Routing 是 ASP.NET MVC 的靈魂,將易讀 URL 對應至 Controller/Action,而非實體 .aspx 檔案。本文解析路由規則語法、預設值設定、Global.asax 註冊流程。
傳統 WebForm:https://localhost/Views/Home/Index.aspx
MVC:https://localhost/Home/Index 或 https://localhost/Home
MVC 不直接存取 .aspx,而是由路由規則決定對應 Controller/Action。
{ } 定義參數佔位符(如 {controller}, {action}, {id})。/ 與 . 為分隔符號。public static void RegisterRoutes(RouteCollection routes)
{
// 1. 預設路由:{controller}/{action}/{id}
routes.Add(new Route("{controller}/{action}/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new { action = "Index", id = "" })
});
// 2. 根網址導向 Home/Index
routes.Add(new Route("Default.aspx", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new { controller = "Home", action = "Index", id = "" })
});
}
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
/Home 等同 /Home/Index。.mvc 副檔名,可改用 .ashx 或 .aspx 對應。掌握路由規則定義與註冊時機,是掌控 ASP.NET MVC URL 結構與 SEO 友善度的關鍵。後續版本引入 MapRoute 擴充方法簡化註冊語法。