Web API 路由 - 找到与请求匹配的多个操作
Posted
技术标签:
【中文标题】Web API 路由 - 找到与请求匹配的多个操作【英文标题】:Web API Routing - multiple actions were found that match the request 【发布时间】:2013-06-17 10:49:56 【问题描述】:我得到了这条路线:
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)
这是发布请求:
http://localhost:61971/api/Login/GetLoginSeed
为什么我总是得到与请求匹配的多个操作错误?
【问题讨论】:
【参考方案1】:我得到了这条路线:
您展示的是 MVC 控制器的路由。我希望你意识到 Web API 控制器是完全不同的东西。他们在~/App_Start/WebApiConfig.cs
中定义了自己的路由。
因此,请确保您已在 Web API 路由定义中包含 action
令牌(我再重复一遍,这与您的 MVC 路由定义无关):
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/controller/action"
);
【讨论】:
以上是关于Web API 路由 - 找到与请求匹配的多个操作的主要内容,如果未能解决你的问题,请参考以下文章