Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple types were found that match the controller named 'Account'. MVC 4 & using RouteConfig.CS

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

like image 530
April Avatar asked Sep 23 '13 03:09

April


People also ask

Can we have two controllers with same name in MVC?

One should be of type Controller, and the other ApiController, then they can both exist with the same name.

Which of the following properties exposed by controller class can be accessed in action method?

The Controller class exposes Request and Response properties that can be accessed in an action method.


1 Answers

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" }
);
like image 113
Code Uniquely Avatar answered Oct 14 '22 21:10

Code Uniquely