0

我正在使用 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 对象中,我将 ODataQueryOptions 对象中的 'Filter' 和 'OrderBy' 设为 null。

这是我创建请求的剑道参数映射方法

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

我怎样才能做到这一点?

无需修改 API Controller 中的查询选项。我可以以哪种格式将数据发送到 API 以将其作为 ODataQueryOPtions 对象接受。截至目前,我的“请求有效载荷”是

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

我怎么能做到这一点?这个 EnableQuery 可以与“HTTP POST”一起使用吗?提前致谢

4

0 回答 0