I am continuing to enslave the MVC 2 thing: Areas...
Now I have two controllers with the same name (HomeController) in the main Controllers folder and in one of the Area
If you create application namespace is MvcApplication1, you wrote try this.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
AreaRegistration.RegisterAllAreas();
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" }, // Parameter defaults
null,
new[] { "MvcApplication1.Controllers" }
);
}
Set root route controller namespace "MvcApplication1.Controllers", it running.
Hope this tips.
If the two controllers with the same class name are in two different areas, this works as expected.
In your case, you have one controller in an area, and one controller in the "default Controllers folder". Are you sure this is what you want? Is your "default Controllers folder" supposed to contain some kind of shared controllers, such as the default account controller?
This is really an ASP.NET Routing issue as opposed to a namespace or class name issue. The problem is most likely that you have two routes to the ambiguous controller name; one registered via area registration and one via the default route registration in RegisterRoutes.
Also, see this post about area ordering.