WebApi 找到了与该请求匹配的多个操作

在同一个命名空间内,报错 

错误的路由代码:

namespace CRM4S
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

           // config.Routes.MapHttpRoute(
           //    name: "SalesApi",
           //    routeTemplate: "Api/Sales/{controller}/{action}/{id}",
           //    defaults: new { id = RouteParameter.Optional }
           //);

            config.Formatters.Clear();
            config.Formatters.Insert(0, new JsonMediaTypeFormatter());
        }
    }
}

请求链接:

  var url = "/api/SalesApi/UpLoadAvatar?SalesID=" + saleid;

接口代码:

这个时候就会报错

报说找到了多个请求匹配的操作

就是UpLoadAvatar与UpLoadQRcode冲突,如果只有一个就不会有问题,

如果将UpLoadQRcode中请求参数SalesID改成ID,那么UpLoadQRcode可以运行,UpLoadAvatar不可以

正确的方式:

将路由中的注释部分取消

请求地址为:

 var url = "/api/Sales/SalesApi/UpLoadAvatar?SalesID=" + saleid;

这个时候就没有问题了,可以正常请求

 

posted @ 2016-02-17 16:34  hongdada  阅读(15696)  评论(7编辑  收藏  举报