Web API多次获取

时间:2018-08-26 07:30:46

标签: asp.net-web-api

我的Web API类中有几个get方法。路由配置如下;

select  @data.value('sum(//*[not(*)])', 'float')- @data.value('sum(//*:a)', 'float')

控制器类如下;

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

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

当我尝试调用 / api / test 时,会调用 testBring 方法。但是,当我调用 / api / Item 时,我收到一条错误消息,发现与请求相匹配的多个操作... 为什么这样?

1 个答案:

答案 0 :(得分:0)

/api/test可以很好地映射到第一个路由模板api/test/{action}/{id},因为其中包含默认参数,从而可以调用特定动作。

但是,/api/Item映射到第二个路由模板api/{controller}/{id},并且由于存在多个HttpGet动作(例如Get()testBring())与请求的路径匹配。