【发布时间】:2015-07-28 06:02:28
【问题描述】:
是否可以使用谓词表达式作为 HTTPGET 请求(到 mvc api 控制器)的参数。
背景:我正在尝试构建一个汽车租赁网络应用程序。 使用 MSsql for db、EntityFramework(代码优先)、(通用)CRUD 函数和 MVC API 控制器的存储库。
我的目标是使用谓词 linq 表达式通过 api 控制器向 db 发送查询。 代码:
存储库:
public IQueryable<T> Search<T>(Expression<Func<T, bool>> predicate) where T : class, IDataEntity
{
return _context.Set<T>().Where(predicate);
}
api get(谓词表达式参数)函数:
public HttpResponseMessage Get(Expression<Func<Car, bool>> predicate)
{
using (IRepository Manager = Factories.Factory.GetRepository())
{
var CarList = Manager.Search<Car>(predicate)
.Select(x => new CarDTO()
{
...
})
.ToList();
return Request.CreateResponse<List<CarDTO>>(HttpStatusCode.OK, CarList);
}
}
客户端 html angular/jq ajax 请求:
$http.get("/api/CarApi"+"??????",{params:{ ??????? }})
.success(function (result) {
$scope.filteredCarsList = result;
...
})
.error(function (result) {
...
});
(我使用 agulars $http 进行 ajax 请求,类似于 $.getJSON)
是否可以通过 ajax (get) 请求向希望获取 linq 表达式作为参数的 api 控制器发送谓词表达式?
如果是这样,怎么做? 如果不是,实现我的目标的正确/适当方法是什么?
【问题讨论】:
标签: javascript asp.net-mvc linq entity-framework api