2014-10-12 23 views
0

我有一個RouteConfig.cs文件,我不知道哪個會執行,請告訴我,並向我解釋。如何知道哪些默認路由是默認的,並且將在此代碼的MVC 4中執行?

這是關於asp.net MVC4

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      #region Special Page 
      // Admin Router 
      routes.MapRoute(
       name: "Admin", 
       url: "Admin/", 
       defaults: new { area = "Admin", controller = "dashboard", action = "index" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      // Error Page, NotFound And UnderConstruction 
      routes.MapRoute(
       name: "ErrorsLang", 
       url: "{culture}/Errors/{action}", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Errors", action = "NotFound" }, 
       constraints: new { culture = "[a-z]{2}" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      routes.MapRoute(
       name: "Errors", 
       url: "Errors/{action}", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Errors", action = "NotFound" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      // Home 
      //routes.MapRoute(
      // name: "Home", 
      // url: "{culture}/", 
      // defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Home", action = "Index", type = "", slug = "" }, 
      // namespaces: new[] { "PixelCMS.Controllers" } 
      //); 

      // Common 
      routes.MapRoute(
       name: "Common", 
       url: "Common/{action}/{id}", 
       defaults: new { controller = "Common", action = "", id = UrlParameter.Optional }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      // Common 
      routes.MapRoute(
       name: "Widget", 
       url: "Widget/{action}/{id}", 
       defaults: new { controller = "Widget", action = "", id = UrlParameter.Optional }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      // Login 
      routes.MapRoute(
       name: "LoginPanel", 
       url: "account/{action}", 
       defaults: new { controller = "Account", action = "Register" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      // Login 
      routes.MapRoute(
       name: "Account", 
       url: "account/{action}/{id}", 
       defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      routes.MapRoute(
       name: "AccountLang", 
       url: "{culture}/account/{action}/{id}", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Account", action = "Login", id = UrlParameter.Optional }, 
       constraints: new { culture = "[a-z]{2}" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      // Contact 
      routes.MapRoute(
       name: "ContactLang", 
       url: "{culture}/Contact/{add}", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Contact", add = UrlParameter.Optional }, 
       constraints: new { culture = "[a-z]{2}" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      routes.MapRoute(
       name: "Contact", 
       url: "Contact/{add}", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Contact",add=UrlParameter.Optional }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 


      // Search 
      routes.MapRoute(
       name: "SearchLang", 
       url: "{culture}/Search/", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Search" }, 
       constraints: new { culture = "[a-z]{2}" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 
      routes.MapRoute(
       name: "Search", 
       url: "Search/", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Search" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      // cart 
      routes.MapRoute(
       name: "ShoppingCartLang", 
       url: "{culture}/ShoppingCart/", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "ShoppingCart", action = "Index", type = "", slug = "" }, 
       constraints: new { culture = "[a-z]{2}" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 
      routes.MapRoute(
       name: "ShoppingCart", 
       url: "ShoppingCart/", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "ShoppingCart", action = "Index", type = "", slug = "" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 
      #endregion 

      // Slug 
      //routes.MapRoute(
      // name: "Slug", 
      // url: "{culture}/{slug1}/{slug2}/{slug3}/{slug4}", 
      // defaults: new { culture = UrlParameter.Optional, controller = "Content", action = "Slug", slug1 = UrlParameter.Optional, slug2 = UrlParameter.Optional, slug3 = UrlParameter.Optional, slug4 = UrlParameter.Optional }, 
      // namespaces: new[] { "PixelCMS.Controllers" } 
      //); 

      routes.MapRoute(
       name: "SlugLang", 
       url: "{culture}/{slug1}/{slug2}/{slug3}/{slug4}", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Slug", slug1 = UrlParameter.Optional, slug2 = UrlParameter.Optional, slug3 = UrlParameter.Optional, slug4 = UrlParameter.Optional }, 
       constraints: new { culture = "[a-z]{2}" }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

      routes.MapRoute(
       name: "Slug", 
       url: "{slug1}/{slug2}/{slug3}/{slug4}", 
       defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Slug", slug1 = UrlParameter.Optional, slug2 = UrlParameter.Optional, slug3 = UrlParameter.Optional, slug4 = UrlParameter.Optional }, 
       namespaces: new[] { "PixelCMS.Controllers" } 
      ); 

`

,我不知道,這將RouteConfig檔案網站的所有鏈接? 我是一個約MVC4新手和路由文件和

@HTML.Action("LoadURL","Common",new {...}) 
@Html.Action(). 

命令Routeconfig.cs

回答

1

對應對不起你回信答覆,而不是書面意見。 (沒有足夠的信譽來回複評論)

路由以它們被定義的順序工作,在你的情況下你已經定義了多個路由,並且當你發出任何請求時,它將從頂部開始並遍歷到底部,與規則匹配的第一個將被擊中。

而在大多數情況下,你不需要這麼多的路線部分,只有少數邏輯的人可以幫助你。對於一個實例

routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 

這將嘗試與控制器名稱相匹配的URL,然後看看是否控制器具有任何行動,在這種情況下,ID是可選的。

+0

你可以指定當我向我的瀏覽器發出請求時將會調用的是http:// localhost:xxxxx /? – 2014-10-12 14:49:17

+0

我想你會得到一個HTTP錯誤403.14 - 禁止類型的錯誤。但是如果你寫的像localhost:xxxxx/ShoppingCart或類似的東西,那麼你會被重定向到相應的控制器和操作。 – 2014-10-12 16:26:27