2016-03-02 85 views
0

我的mvc應用中有路由問題。我有我的核心應用程序與ProductsController和擴展在「PreApplicationStartMethod」中加載。在這種extenstion我註冊的路線是這樣的:路由系統使用默認路由而不是特定的路由

routes.MapRoute(
    name: "ProductDetails", 
    url: "Products/Details/{id}", 
    defaults: new { controller = "StandardProductsDetails", action = "Details" }, 
    namespaces: new []{ "Shop.Controllers" } 
); 

而且在我的核心應用程序我不是註冊爲ProductsController的具體路線,但我有一個大致的路線:

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

現在,當我進入/產品/詳情/ 1在Web瀏覽器im重定向到ProductsController。

添加路線的Oderd是特定的第一個,一般的最後一個。我檢查了路線表,並且我的路線存在於其中。

+0

如果您在默認路由之前複製路由而不是在'PreApplicationStartMethod'中註冊,會發生什麼?我懷疑這個事件發生的過早(每[本帖]](http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4。 aspx /)發生在編譯「App_Code」代碼之前),因爲它對註冊路由很有用。 – NightOwl888

回答

0

我想你在這裏使用兩個項目,如果你正在使用,然後使項目作爲啓動項目(通過右擊),你想先擊中。