Routing 是用來定義網址的格式,它是在 ASP.NET 3.5 被加入的新功能,在過去,要實現這個功能,可能要自已撰寫程式,或者使用第三方元件。 有了這個內建功能,要使用 Routing 的好處,就變的方便許多。
在 Routing 規則集之中,第一個被比對成功的規則就會直接被採用認識 MVC Routing
當 IIS 收到一個 MVC 要求,會先交由 UrlRoutingModule (一個 HttpModule) 處理。 然後在交給 MvcRouteHandler 依據 URL 的內容以決定對應的 controller 和 action method。
Routing 的組成
底下這個範例是預設的網址樣式:
routes.MapRoute(
"Default", // 路由名稱
"{controller}/{action}/{id}" // URL 樣式
);
- 每一個 {} 稱為 placeholder
- 由 / 分開的段落則稱之為 segment
- placeholder 中的名稱,則稱路由參數 (route parameters)
- 一個 segment 允許放多個 placeholder ,如:
routes.MapRoute(
"Route1",
"{language}-{country}/{route}"
);
設定 Routing 的預設值
h2_XXXXX
public static Route MapRoute(this RouteCollection routes, string name, string url);
public static Route MapRoute(this RouteCollection routes, string name, string url, object defaults);
public static Route MapRoute(this RouteCollection routes, string name, string url, object defaults, object constraints);
...