我使用Web Api创建参数范围为0到4的REST API。 以下是我的API示例:
对于这些不同的GET电话, 我在webapiconfig中创建了以下路线:
routeTemplate:" api / {controller} / {action}", 默认值:new {}
routeTemplate:" api / {controller} / {action} / {date} / {name}", 默认值:new {name = RouteParameter.Optional}
routeTemplate:" api / {controller} / {action} / {frmdate} / {toDate} / {name}", 默认值:new {name = RouteParameter.Optional}
当我调用API时,它适用于大多数路由,但是路由之间似乎存在冲突,我收到错误"控制器上没有找到任何操作' TaxRate& #39;与请求匹配。"当我调用动作api / TaxRate / GetTaxBetweenDates / 2015-04-01 / 201504-10
虽然我在使用所有参数调用相同的api时得到结果:api / TaxRate / GetTaxBetweenDates / 2015-04-01 / 201504-10 / abc
当我更改路由序列时,GetTaxRatesbyDate API调用会出现同样的问题。
答案 0 :(得分:0)
根据Web api路由中的经验法则,您应首先注册更具体的路由。请查看此链接Routing order。这里可能有用的是注册更具体的路线,如“api/{controller}/GetTaxRatesByDate/{date}/{name}", defaults: new { name= RouteParameter.Optional }
答案 1 :(得分:-1)
我能够使用属性路由解决上述问题。