如何在控制器操作中访问$ orderBy等查询参数?

时间:2016-08-24 09:21:57

标签: c# asp.net asp.net-web-api asp.net-core

我正在阅读Microsoft REST API指南(https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md),并且有一个以美​​元符号开头的查询参数,例如: $orderBy

  

9.6对集合进行排序

     

可以根据属性对集合查询的结果进行排序   值。该属性由$ orderBy查询的值确定   参数。

现在,如果我尝试在动作方法中定义类似$orderBy的方法参数,那么它在语法上是不正确的($orderBy不是有效的标识符。)

public class ExampleController : Controller
{
    // this is syntactically not correct
    public IActionResult Collection(...., string $orderBy = null)
    {
         ...
    }
}

如何在ASP.NET Core的操作方法中访问以美元符号开头的查询参数?

1 个答案:

答案 0 :(得分:7)

使用FromQuery并设置名称[FromQuery(Name = "$orderBy")]string orderBy

public class ExampleController : Controller
{        
    public IActionResult Collection(...., [FromQuery(Name = "$orderBy")]string orderBy = null)
    {
         ...
    }
}