我要路由http://localhost:8888/api/orders?id=1
之类的URL
动作,但只有在URL以以下格式给出时,该功能才有效:http://localhost:8888/api/orders/1
两个动作:
[HttpGet]
public IActionResult Get(bool includeItems=true)
{
var results = _repository.GetAllOrders(includeItems);
return Ok(_mapper.Map<IEnumerable<Order>, IEnumerable<OrderViewModel>>(results));
}
[HttpGet("{id:int}")]
public IActionResult Get(int id)
{
var order = _repository.GetOrderById(id);
if (order != null)
return Ok(_mapper.Map<Order, OrderViewModel>(order));
else
return NotFound();
}
如果我发送如下网址,则效果很好:
http://localhost:8888/api/orders?includeItems=false
。
当我发送URL http://localhost:8888/api/orders?id=1
时,它被映射到以includeItems
作为参数的第一个Action。
我在控制器顶部有[Route("api/[Controller]")]
属性。