Изменить ключ элемента HttpContext.Request.Query в ASP.NET Core - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь обойти проблему с помощью стороннего фильтра. Мой текущий план состоит в том, чтобы поместить фильтр перед этим фильтром, чтобы «исправить» строку запроса, чтобы она не выдавала ошибку.

Я создал ActionFilterAttribute и добавил его в список фильтров. Работает нормально. Я добавляю свою логику в методе OnActionExecuting.

Первый элемент context.HttpContext.Request.Query имеет ключ, который является структурой json. Мне нужно изменить этот ключ на {}.

. Проблема в том, что context.HttpContext.Request.Query и context.HttpContext.Request.QueryString доступны только для чтения.

Как я могу изменить context.HttpContext.Request.Query или context.HttpContext.Request.QueryString?

EDIT - Основная проблема:
BreezeJS сделалминимальный уровень обновления для поддержки .NET Core. В этом обновлении часть кода ожидает, что каждый вызов, имеющий какие-либо параметры, вернет IQueryable ( QueryFns.cs Строка 32 ). При чтении кода кажется, что это ошибка (вызывающая функция ( фактический фильтр ), похоже, просто ожидает, что ноль будет возвращен, а не исключение.)

В любом случае, это делаеточень тяжело перейти на .NET Core.

Я рассмотрел другие варианты, и если это не удастся, я продолжу их использовать:

  1. Отправьте запрос на удаление, чтобы исправить ошибку. проблема : Проект не принимал никаких запросов на получение более чем за полтора года. Поэтому кажется маловероятным, что мой запрос будет принят.
  2. Создайте свою собственную ветку: Я бы не хотел создавать и поддерживать отдельную версию с моим собственным конвейером сборки и публикации.
  3. Найдите способ заставить фильтр Breeze игнорировать вызов, когда результат не является IQueryable : я сейчас изучаю этот. (Этот вопрос.)
  4. Найдите способ отправить мой вызов от клиента по-другому, чтобы breeze игнорировал вызовы, которые не возвращают IQueryable : тип возврата вызова принадлежит службе,И это проблема с сервисом. Я бы предпочел не иметь тесной связи между службой и клиентом, так что клиент разрабатывает обходные пути для проблем фильтра службы.
...