使用angularjs的asp.net webApi路由问题。 (找到匹配的多个动作)

时间:2014-12-08 13:26:55

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

我几乎读完了所有内容。应用所有解决方案仍然没有任何工作。

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: "ApiWithAction",
             routeTemplate: "api/{controller}/{action}/{id}",
             defaults: new { id = RouteParameter.Optional }
            );
            config.EnableSystemDiagnosticsTracing();
        }
    }

Web api Sorting.cs文件

[ActionName("pcc")]
public IHttpActionResult Post(PccModel pcc)
{
     return Ok()
}

[ActionName("sortBy")]
public IHttpActionResult PostSortBy(SortByModel sortByModel)
{
            return Ok();
}
}

从angular controller .js文件调用web api

致电sortBy ......

$http({
            method: 'POST',
            url: '/api/Sorting/sortBy',
            data: sortByModel,
            headers: { 'Content-Type': 'application/json' }
        })
       .success(function () {

        }).error(function() {
        });

致电pcc

return $http.post('/api/Sorting/pcc', data);

在两次调用中,都会出现相同的多重操作方法错误。

1 个答案:

答案 0 :(得分:0)

申请

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

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

了解更多信息see this