小编Tom*_*cki的帖子

如何在BreezeJs中正确发送动作参数和查询

目前我正在调用BreezeJs文档/示例中显示的所有数据查询:

getEntityList = function (predicate) {
  var query = new entityModel.EntityQuery().from("EntityList");
  if (predicate)
    query = query.where(predicate);
  return manager.executeQuery(query);
}
Run Code Online (Sandbox Code Playgroud)

但我想在返回任何可查询结果之前将其他参数传递给控制器​​操作:

[AcceptVerbs("GET")]
public IQueryable<Entity> EntityList(string actionParam) {
  //here goes logic that depends on actionParam
  //and returns IQueryable<Entity>
}
Run Code Online (Sandbox Code Playgroud)

正如我们从文档中所知:

Breeze将查询转换为OData查询字符串,例如:

?$ FILTER =的isArchived%20当量%20false&$排序依据= CreatedAt

这是问题开始的地方.我应该如何构建查询以将param传递给控制器​​操作?

getEntityList = function (predicate, actionParam) {
  var query = new entityModel.EntityQuery().from("EntityList");
  if (predicate)
    query = query.where(predicate);
  if(actionParam)
    // ???
  return manager.executeQuery(query);
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试设置路线:

routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{actionParam}",
            defaults: new { query = RouteParameter.Optional }
        ); …
Run Code Online (Sandbox Code Playgroud)

breeze

13
推荐指数
2
解决办法
6258
查看次数

标签 统计

breeze ×1