我有一个名为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