【问题标题】:Web API Routing - multiple actions were found that match the requestWeb API 路由 - 找到与请求匹配的多个操作
【发布时间】: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

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

【问题讨论】:

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


    【解决方案1】:

    我得到了这条路线:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多