Month End Sale: Get Extra 10% OFF on Job-oriented Training! Offer Ending in
D
H
M
S
Get Now
Resolve Ambiguous Controller Error by routes

Resolve Ambiguous Controller Error by routes

05 Mar 2024
Intermediate
151K Views
2 min read

In previous articles, I have described the Routing System and how to create Route Constraints in your application. Now the time is to resolve the common error "multiple matching controllers were found" raised by the routing system when your application have more than one controller with the same name in different namespace.

Raised Error

Suppose you have HomeController with in two namespaces : Mvc4_RouteConstraints & Mvc4_Route. You have also registered a Default route for your application as shown below.

routes.MapRoute(
 "Default", // Route name
 "{controller}/{action}/{id}", // Route Pattern
 new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Default values for parameters
);

So when you will run your application then it will throw the error that the request for 'Home' has found the more than one matching controllers as shown below fig.

How to resolve it...

We can resolve this error by setting priority of the controllers. Suppose in the application HomeCOntroller defined in the Mvc4_RouteConstraints namespace has high priority than Mvc4_Route namespace controller. Let's do it.

routes.MapRoute(
 "Default", // Route name
 "{controller}/{action}/{id}", // Route Pattern
 new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Default values for parameters
 new[] { "Mvc4_RouteConstraints"});
);

In above code, I have added the Mvc4_RouteConstraints namespace as a string which told the MVC framework to look in the Mvc4_RouteConstraints namespace before looking anywhere else. Now, when you run your application, it will run successfully without any error.

If you want to give preference to a controller with in one namespace and all other controllers should also resolved in another namespace, you need to defined multiple routes as shown below.

routes.MapRoute(
 "Default", // Route name
 "{controller}/{action}/{id}", // Route Pattern
 new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Default values for parameters
 new[] { "Mvc4_RouteConstraints"});
);

routes.MapRoute(
 "Default", // Route name
 "{controller}/{action}/{id}", // Route Pattern
 new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Default values for parameters
 new[] { "Mvc4_Route"});
);
What do you think?

I hope you have got how to resolve ambiguous controller error by defining routes. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome.

Share Article

Live Classes Schedule

Our learn-by-building-project method enables you to build practical/coding experience that sticks. 95% of our learners say they have confidence and remember more when they learn by building real world projects.
.NET Solution Architect Certification Training Jul 28 SAT, SUN
Filling Fast
05:30PM to 07:30PM (IST)
Get Details
Advanced Full-Stack .NET Developer Certification Training Jul 28 SAT, SUN
Filling Fast
07:00AM to 09:00AM (IST)
Get Details
ASP.NET Core Certification Training Jul 28 SAT, SUN
Filling Fast
07:00AM to 09:00AM (IST)
Get Details
ASP.NET Core Project Aug 24 SAT, SUN
Filling Fast
07:00AM to 09:00AM (IST)
Get Details

Can't find convenient schedule? Let us know

About Author
Shailendra Chauhan (Microsoft MVP, Founder & CEO at Scholarhat by DotNetTricks)

Shailendra Chauhan is the Founder and CEO at ScholarHat by DotNetTricks which is a brand when it comes to e-Learning. He provides training and consultation over an array of technologies like Cloud, .NET, Angular, React, Node, Microservices, Containers and Mobile Apps development. He has been awarded Microsoft MVP 8th time in a row (2016-2023). He has changed many lives with his writings and unique training programs. He has a number of most sought-after books to his name which has helped job aspirants in cracking tough interviews with ease.
Accept cookies & close this