c# - Web API 路由 - 找到多个与请求匹配的操作

标签 c# asp.net-mvc asp.net-web-api

我得到了这条路线:

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

这个 Action :

    [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

为什么我总是收到 multiple actions were found that match the request 错误?

最佳答案

I got this Route:

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

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

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

关于c# - Web API 路由 - 找到多个与请求匹配的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17145727/

相关文章:

c# - MVC 4 : Calling action method on dropdown list select change

asp.net-mvc - ASP.NET MVC应用程序的论坛解决方案

asp.net - 如何配置 ASP.NET MVC 项目以与 Boo 一起使用

c# - Controller 上的多个路由

asp.net-mvc-4 - 将自定义 header 添加到 asp.net MVC 4 Web API

c# - GraphQL 为 .net 开发做好准备

c# - 整个网站从 Http 迁移到 Https

c# - 移动服务查询异常

c# - ASP.NET MVC 和登录身份验证

c# - 如何转换字符串值 Jul 28 00 :00 to datetime in c#