我想提供一个带有过滤器参数的 GetAll api,如下所示:
/api/v1/location/amsterdam/order/?filter=x
但有了这条路线:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/v1/location/{location}/{controller}/{id}",
defaults: new { id = RouteParameter.Optional}
);
这个网址:
/api/v1/location/amsterdam/order/?filter=x
我得到一个例外:
“在与请求匹配的控制器‘订单’上找不到任何操作。”
'order' 控制器有以下方法:
public HttpResponseMessage Get(int id)
public IQueryable<OrderDTO> Get(string filter)
public HttpResponseMessage Get()
当我{location}
从路由和 url ( /api/v1/location/order/?filter=x
) 中删除段时,请求与方法匹配Get(string filter)
。
我究竟做错了什么?这样做的正确方法是什么?