MVC MVC 路由詳解

在項目中咱們引用了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); //測試路由
相關文章
相關標籤/搜索