问题
I currently have 2 projects in same folder. Main
- Project1
- Project2
Problem:
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
回答1:
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" }
);
回答2:
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:
- Right-click solution, click 'Clean Solution'
- Manually delete everything in the /bin and /obj folders
- Build your solution
来源:https://stackoverflow.com/questions/18951523/multiple-types-were-found-that-match-the-controller-named-account-mvc-4-usi