在項目中咱們引用了System.Web.Routing; Routing的做用:正則表達式
肯定Controller測試
肯定Actionurl
肯定其餘參數spa
根據識別出來的數據, 將請求傳遞給Controller和Action.設計
Global.asax中調試
在App_Start目錄中的RouteConfig.cs文件code
註冊一條路由規則blog
name 參數:路由
規則名稱, 能夠隨意起名.不能夠重名,不然會發生錯誤,路由集合中已經存在名爲 「Default」 的路由。路由名必須是惟一的。 it
url 參數:
url獲取數據的規則, 這裏不是正則表達式, 將要識別的參數括起來便可, 好比: {controller}/{action}
defaults 參數:
url參數的默認值. 咱們只創建了一條url獲取數據規則: {controller}/{action} 那麼這時就會爲action參數設置defaults參數中規定的默認值. new { controller = "Home", action = "Index" }
多條路由規則
RouteDebug.dll
RouteDebug.dll調試類庫放入packages包下,packages文件夾下包含項目用到的全部第三方庫。 而後添加引用RouteDebug.dll到項目中。
在Global.asax.cs註冊路由以後添加代碼:
RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes); 重寫了路由調試的地址,將已經註冊了的路由規則進行測試。
例如:
//從繁到簡的寫法,參數多的寫前面/難匹配的寫前面 多個路由設計 // routes.MapRoute( //name: "FF", //url: "{controller}-{action}-{id}-{name}", //defaults: new { controller = "Home", action = "Index" } //); // routes.MapRoute( // name: "DD", // url: "{controller}-{action}-{id}", // defaults: new { controller = "Home", action = "Index"} // ); // routes.MapRoute( // name: "SS", // url: "{controller}-{action}", // defaults: new { controller = "Home", action = "Index"} // ); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
啓用測試路由,無論你打開那個Action都會跳到它的測試頁面去
RouteConfig.RegisterRoutes(RouteTable.Routes); //註冊路由 BundleConfig.RegisterBundles(BundleTable.Bundles); //RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes); //測試路由