Angularjs ngResource能否将嵌套对象传递到GET查询中?

Angularjs ngResource能否将嵌套对象传递到GET查询中?,angularjs,asp.net-web-api2,ngresource,Angularjs,Asp.net Web Api2,Ngresource,我正在使用ngResource与我的Web API通信。 我想向我的WebAPI控制器发送搜索请求,但对象不是平面: var searchRequest = { query: "hotel", page: 1, price: { min: 1000, max: 2500 } } 我的控制器接受一个SearchRequest参数,该参数的结构与发送的对象相同,因此请求应该如下所示 http://localhost/api/search?que

我正在使用ngResource与我的Web API通信。 我想向我的WebAPI控制器发送搜索请求,但对象不是平面:

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

如果是我,我会将其更改为使用OData属性端点,该端点返回IQueryable。然后在前端使用breeze.js生成查询。看看这些:


我可能错了,但我认为这不适用于嵌套查询。另一种解决方案可能是展平查询,然后使用linq投影或自动映射投影来查询数据源,但这取决于linq提供程序可以处理什么

如果是我,我会将此更改为使用返回IQueryable的OData属性端点。然后在前端使用breeze.js生成查询。看看这些:

我可能错了,但我认为这不适用于嵌套查询。另一种解决方案可能是展平查询,然后使用linq投影或自动映射投影来查询数据源,但这取决于linq提供程序可以处理什么