我得到了这条路线:
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
为什么我总是会发现多个匹配请求错误的操作?
答案 0 :(得分:39)
我得到了这条路线:
您展示的是MVC控制器的路线。我希望您意识到Web API控制器是完全不同的东西。他们在~/App_Start/WebApiConfig.cs
中定义了自己的路线。
因此,请确保您已在Web API路由定义中包含{action}
令牌(我再次重复此操作与您的MVC路由定义无关):
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}"
);