Reputation: 85
I currently have 2 projects in same folder. Main
Multiple types were found that match the controller named Account. This can happen if the route that services this request ('{controller}/{action}/{id}')
does not specify namespaces to search for a controller that matches the request. If this is the case, register this route by calling an overload of the MapRoute
method that takes a namespaces
parameter.
The request for Account
has found the following matching controllers:
Project1.Controllers.AccountController
Project2.Controllers.AccountController
I using Foundation 4. Thanks advance
Upvotes: 5
Views: 13574
Reputation: 2158
I had the same problem when I copied an MVC project and renamed all the namespaces.
I tried the above solution but it did not work.
Visual Studio was still looking at the old namespace dll's even after I cleaned and rebuilt my project.
So the solution:
Upvotes: 7
Reputation: 6373
you need to use the version with this signature
public static Route MapRoute(
this RouteCollection routes,
string name,
string url,
Object defaults,
string[] namespaces )
To make it work just set up two almost identical routes - one which includes the project1 for the namespaces parameter and then a second identical version but use project2 in the namespaces parameter. That said, it would generally be less confusing, to use different names if you can...
routes.MapRoute(
name: "Default_Project1",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional,
namespaces: new string[] { "Project1" } }
);
routes.MapRoute(
name: "Default_Project2",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional,
namespaces: new string[] { "Project2" }
);
Upvotes: 8