2016-02-05 68 views
1

我正在使用ngResource与我的Web API进行通信。 我想将搜索请求发送到我的WebAPI控制器,但对象不是平:ngResource可以将嵌套对象传递给GET查询吗?

var searchRequest = { 
    query: "hotel", 
    page: 1, 
    price: 
    { 
     min: 1000, 
     max: 2500 
    } 
} 

我的控制器需要具有相同的结构作为发送对象SearchRequest参数,因此请求应该像

http://localhost/api/search?query=hotel&page=1&price.min=1000&price.max=2500 

然而,ngResource $resource.query(searchRequest)发出此:

http://localhost/api/search?query=hotel&page=1price=%7B%22min%22:1000,%22max%22:2500%7D 

回答

0

如果是我,我会改变这种使用一个OData的原因终点返回一个IQueryable。然后在前端使用breeze.js来生成查询。看看这些:

https://ovaismehboob.wordpress.com/2014/01/18/adding-queryable-support-to-asp-net-web-api-controller-action-methods/

http://breeze.github.io/doc-js/server-odata.html

我可能是错的,但我不认为这将与嵌套查询工作。另一种解决方案可能是扁平化查询,然后使用linq投影或自动映射器投影来查询数据源,但这取决于您的linq提供商可以处理什么

相关问题