路由不会通过属性路由和FromUri触发

时间:2015-07-09 15:24:31

标签: asp.net-web-api asp.net-web-api2 routeattribute

我想用这个网址触发以下路线:

http://localhost:66777/api/productdetails?articlegroup=1&producedat=2012-01-01

我有什么问题 - 我猜 - 路线属性?

[Route("api/productdetails/{articlegroup:int}/{producedat:datetime}")]
[HttpGet]
public async Task<IHttpActionResult> GetProductDetails([FromUri] ProductDetailsRequestDTO dto)
{
    //...
}

public class ProductDetailsRequestDTO
{
    public int ArticleGroup { get; set; }
    public DateTime ProducedAt { get; set; }
}

1 个答案:

答案 0 :(得分:0)

路由模板仅支持“路径”而不支持查询字符串。在上面的示例中,您在{path'上有articlegroupproducedat作为路由变量,您在查询字符串中为这些变量发送数据。由于路径模板匹配无法在路径中找到此数据,因此您可能会获得404 - 这是预期的。