在HTTPPOST方法中获取ODataQueryOptions

时间:2017-10-29 14:45:51

标签: angularjs asp.net-web-api2 kendo-grid odata odatacontroller

我正在使用HTTP POST从ODataController获取数据。但我无法查询我的服务

[HttpPost]
[EnableQuery]
public IQueryable<MyDataObject> FetchCCMNewIssueLogViewGridData()
{
     var result = CCMModelDataContext.MyDataObject.AsQueryable();
     return result ;
}

如何从客户端发送请求以接受ODataQueryOptions对象?

[HttpPost]        
public IQueryable<MyDataObject> FetchGridData(ODataQueryOptions<MyDataObject> options)
{
    var result = options.ApplyTo(CCMModelDataContext.MyDataObject.AsQueryable(), new ODataQuerySettings());
    return result as IQueryable<MyDataObject>;
}

但是在ODataQueryOptions对象中,我得到了&#39; Filter&#39;和&#39; OrderBy&#39;在ODataQueryOptions对象中为null。

这是我用于创建请求的kendo参数map方法

parameterMap: function (data, type) {
    var newData = customFilterOptions.grdParameterMap(data, type);    
    return JSON.stringify(newData );
},

我怎么能做到这一点?

无需修改API控制器中的查询选项。 我可以使用哪种格式将数据发送到API,以便将其作为ODataQueryOPtions对象接受。 截至目前,我的请求有效负载&#39;是

{$top: 20, $orderby: "field1 desc", $filter: "(field1 eq 2 and field2 eq 385)", $count: true, $skip : 20}

我怎么能这样做?这个EnableQuery会使用&#39; HTTP POST&#39 ;? 提前致谢

0 个答案:

没有答案