Web API路由 – 找到了与请求匹配的多个操作

我有这条路线:

routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { id = UrlParameter.Optional } ); 

这个动作:

  [System.Web.Http.HttpPost] [System.Web.Http.ActionName("GetLoginSeed")] public object GetLoginSeed() [System.Web.Http.HttpPost] [System.Web.Http.AllowAnonymous] [System.Web.Http.ActionName("Authenticate")] public object PerformLogin(JObject jr) 

这是post请求:

  http://localhost:61971/api/Login/GetLoginSeed 

为什么我总是得到多个匹配请求错误的操作?

我有这条路线:

您展示的是MVC控制器的路由。 我希望您意识到Web API控制器是完全不同的东西。 它们在~/App_Start/WebApiConfig.cs定义了自己的路由。

因此,请确保您已在Web API路由定义中包含{action}标记(我再次重复此操作与您的MVC路由定义无关):

 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}" );