【发布时间】:2016-01-21 05:49:42
【问题描述】:
我有 web api 2 控制器操作:
[HttpGet]
public Response<IEnumerable<Product>> Get()
{
....(Get all products)
}
[HttpGet]
public Response<Product> Get(int id)
{
....(Get product by id)
}
[HttpGet]
public Response<IEnumerable<Product>> Category(int id)
{
.... (Get products by category)
}
我想用这个带有 url 的控制器:
http://localhost/api/product
http://localhost/api/product/1
http://localhost/api/product/category/1
但是这个网址http://localhost/api/product/1返回错误,
找到多个匹配请求的操作
我的配置设置是这样的:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
【问题讨论】:
标签: asp.net-mvc asp.net-web-api asp.net-web-api2 asp.net-routing