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 ).
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With