我有一個名爲HomeController的控制器,一個名爲Home的文件夾和一個名爲Index的視圖。我還有另一個名爲TestEditController的Controller,一個名爲TestEdit的文件夾和一個名爲Index的View。出於某種原因,當我編譯它時,URL:http://localhost:4097/
不指向Home/Index,而是指向TestEdit/Index。我去了「屬性」>「開始操作」>「特定頁面...」,並將文本框留空。注意:放置/
不起作用。我已經清理,構建,重建項目/解決方案。但仍然遇到同樣的問題。這是我的Global.asax文件:爲什麼編譯MVC在錯誤的控制器上啓動?
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"SectionsData", // Route name
"{controller}/{action}/{id}/{prodno}/{instid}/{section}", // URL with parameters
new { controller = "TestEdit", action = "Sections", id = UrlParameter.Optional, prodno = UrlParameter.Optional, instid = UrlParameter.Optional, section = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Sections", // Route name
"{controller}/{action}/{id}/{prodno}/{instid}", // URL with parameters
new { controller = "TestEdit", action = "Index", id = UrlParameter.Optional, prodno = UrlParameter.Optional, instid = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"MainProducts", // Route name
"{controller}/{action}/{id}/{prodno}", // URL with parameters
new { controller = "Home", action = "Main", id = UrlParameter.Optional, prodno = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Catalogs", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Products", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
這些路線將首先進行比賽。由於TestEdit路由的所有URL參數都是可選的,因此它首先匹配。 – 2012-07-17 20:16:21