使用ASP动态参数过滤获取资源.. NET Web API 2

本文关键字:NET Web API 资源 获取 ASP 动态 参数 过滤 使用 | 更新日期: 2023-09-27 18:06:59

我想使用ASP为Web api实现类似于OData $filter的动态过滤功能(尽管只有eq操作符)。. NET Web API 2。但我没有使用OData功能。

,

GET /order?id=134017710&orderdate=20-01-2014&status=new

我不想在检索资源时限制静态参数绑定。

我想实现它的方式是使用动态LINQ过滤掉结果。

有更好的方法吗?

使用ASP动态参数过滤获取资源.. NET Web API 2

我会这样做:

public class QueryObject
{
    public string id { get; set; } 
    public DateTime orderDate { get; set; }
    public string status { get; set; }
    // etc
}
public OrderController : ApiController
{
    public HttpResponseMessage Get([FromUri] QueryObject query) 
    {
         // some method (possibly uses Linq)that acts on your filters
         FilteredGet(query.id, query.orderDate, query.status);
    }
}

这应该允许你允许参数为空,你可以调整你的LINQ查询,因为你的查询的变化。