如何在ASP.NET MVC 6中将ID作为查询字符串传递

时间:2019-05-19 12:49:09

标签: asp.net-mvc rest routing

我要路由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]")]属性。

0 个答案:

没有答案