我有一个名为的控制器
产品 和我有三个动作
- 产品:接受一个 int 返回一个模型(类)对象
- 类别:接受一个字符串返回模型(类)对象的数组
- 全部:无参数返回模型(类)对象的数组
我正在尝试的是以下映射
产品-> api/产品/产品/1
类别-> api / 产品 / 类别 / 酱汁
全部-> api/产品/全部
由于动作名称支持 URL 结构,所以我尝试了一条通用路线
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
其他一切正常,但是当我使用此http://localhost:2271/api/products/category/2
URL时出现以下错误
<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost:2271/api/products/category/2'.
</Message>
<MessageDetail>
No action was found on the controller 'Products' that matches the request.
</MessageDetail>
</Error>
另一方面,这个 URL api/products/category/?cat=abc
&api/products/category?cat=abc
工作正常...... [cat 是我的接收参数名称]
帮助 !!!