R – ASP.NET MVC 2 Preview 2: Areas duplicate controller problem

areasasp.net-mvc

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 Areas. Both have different namespaces so… theoretically should coexists, but they don't.
The error is:

The controller name 'Home' is ambiguous between the following types:

Namespace.HomeController

Namespace.Areas.AreaName.Controllers.HomeController

This is not related to Home controller only (special one?), but applies to any pair in any areas.

How to achieve the coexistence of the same-name-controllers within different areas?

Thanks for your time 🙂

EDIT:
It is okay for same controller name WITHIN different areas: registering routing with namespace solves the problem (thanks to Scott's Allen article ).

Best Answer

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.