Как правильно отправить параметр действия вместе с запросом в BreezeJs
В настоящее время я вызываю все запросы данных, как показано в документах / примерах BreezeJs:
getEntityList = function (predicate) {
var query = new entityModel.EntityQuery().from("EntityList");
if (predicate)
query = query.where(predicate);
return manager.executeQuery(query);
}
Но я хочу передать дополнительный параметр действию контроллера, прежде чем будет возвращен любой запрашиваемый результат:
[AcceptVerbs("GET")]
public IQueryable<Entity> EntityList(string actionParam) {
//here goes logic that depends on actionParam
//and returns IQueryable<Entity>
}
Как мы знаем из документации:
Breeze преобразует запрос в строку запроса OData, такую как эта:
? $ = Фильтр IsArchived% 20eq% 20false & $ OrderBy = CreatedAt
Вот где начинается проблема. Как мне создать запрос для передачи параметра в действие контроллера?
getEntityList = function (predicate, actionParam) {
var query = new entityModel.EntityQuery().from("EntityList");
if (predicate)
query = query.where(predicate);
if(actionParam)
// ???
return manager.executeQuery(query);
}
Я уже пытался установить маршрут к:routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{actionParam}",
defaults: new { query = RouteParameter.Optional }
);
и отправкаactionParam применяя его виз раздел,
var query = new entityModel.EntityQuery()
.from("EntityList/" + encodeURIComponent(actionParam));
но кодирование не выполняется на некоторых специальных символах, и выдается неверный запрос.
Как я могу правильно отправитьactionParam по такому сценарию? Пожалуйста помоги.