首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET MVC URL Routing 核心機制:路由規則定義、預設值與 Global.asax 註冊流程

     編輯:關於ASP.NET

前言

URL Routing 是 ASP.NET MVC 的靈魂,將易讀 URL 對應至 Controller/Action,而非實體 .aspx 檔案。本文解析路由規則語法、預設值設定、Global.asax 註冊流程。

為什麼需要 Routing?

傳統 WebForm:https://localhost/Views/Home/Index.aspx
MVC:https://localhost/Home/Index 或 https://localhost/Home

MVC 不直接存取 .aspx,而是由路由規則決定對應 Controller/Action。

路由規則語法

  • 使用大括號 { } 定義參數佔位符(如 {controller}, {action}, {id})。
  • / 與 . 為分隔符號。
  • 非大括號內容視為常值。

Global.asax 註冊範例

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);
}

關鍵點解析

  1. MvcRouteHandler:負責將路由資料轉交給 MVC 處理管線。
  2. Defaults:提供參數預設值,使 /Home 等同 /Home/Index。
  3. RouteTable.Routes:應用程式層級靜態路由表,啟動時一次性建立。
  4. 虛擬主機注意:若不支援 .mvc 副檔名,可改用 .ashx 或 .aspx 對應。

結語

掌握路由規則定義與註冊時機,是掌控 ASP.NET MVC URL 結構與 SEO 友善度的關鍵。後續版本引入 MapRoute 擴充方法簡化註冊語法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved