【发布时间】:2018-03-04 18:14:10
【问题描述】:
我的 Products 控制器中有两个操作方法。这是我的 RouteConfig。
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
这是两个动作及其工作网址。
[HttpGet]
//uri:http://localhost:49964/api/products/product?strKey=1
public IHttpActionResult Product(string strKey)
[HttpPost]
//uri:http://localhost:49964/api/products/product
public IHttpActionResult Product([FromBody] Product product)
但我也想使用下面的 url 获取。
http://localhost:49964/api/products/product/1
但是 web api 会响应,
The requested resource does not support http method 'GET'.
【问题讨论】:
-
将
strKey更改为id,如果您想保留strKey,请执行相反的操作。路由模板需要与操作相匹配才能按预期工作 -
但是 id 是占位符,对吧?比如控制器和动作。
标签: c# asp.net-web-api2 asp.net-web-api-routing