Multiple actions were found that match the request
Closed this issue · 2 comments
gandarez commented
Hi everybody!
I did follow all tutorial before started implementing. I'm getting an error after did versioning implementation. I have routes declared as below:
I also added at Global.asax.cs
My controllers' namespace:
I'm accessing my url like this http://localhost:57003/api/v1/Swagger
Could it be a bug from WebApi.Versioning?
gandarez commented
I'm out of office but I did some tests today. I recreated all routes based on those below and got it worked. I'll test it out at my office on monday.
config.Routes.MapHttpRoute(
name: "DefaultVersioningApi",
routeTemplate: "api/v{version}/{controller}/{action}");
config.Routes.MapHttpRoute(
name: "DefaultVersioningApiWithAction",
routeTemplate: "api/v{version}/{controller}/{action}/{id}",
defaults: new {id = RouteParameter.Optional});
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional });
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });
gandarez commented
As I was expecting it has worked nicely! Closing this "issue".
config.Routes.MapHttpRoute("DefaultVersioningApiGet",
"api/v{version}/{controller}",
new { action = "Get" },
new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
config.Routes.MapHttpRoute("DefaultVersioningApiPost",
"api/v{version}/{controller}",
new { action = "Post" },
new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });
config.Routes.MapHttpRoute(
name: "DefaultVersioningApi",
routeTemplate: "api/v{version}/{controller}");
config.Routes.MapHttpRoute(
name: "DefaultVersioningApiWithAction",
routeTemplate: "api/v{version}/{controller}/{action}",
defaults: new { action = "Get" });
config.Routes.MapHttpRoute(
name: "DefaultVersioningApiWithActionAndId",
routeTemplate: "api/v{version}/{controller}/{action}/{id}",
defaults: new { action = "Get", id = RouteParameter.Optional });
config.Routes.MapHttpRoute("DefaultApiGet",
"api/{controller}",
new { action = "Get" },
new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
config.Routes.MapHttpRoute("DefaultApiPost",
"api/{controller}",
new { action = "Post" },
new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}");
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = "Get" });
config.Routes.MapHttpRoute(
name: "DefaultApiWithActionAndId",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "Get", id = RouteParameter.Optional });