Хорошо, похоже, я преодолел эту проблему.
Итак, как я это сделал?
Я использовал QueryFeature
класс из источника ядра asp.net изаменил вызов на QueryHelpers.ParseNullableQuery
( вы можете найти его здесь ) с немного измененной реализацией этого помощника без вызова Uri.UnescapeDataString
для значения параметра.
Затем создал класс промежуточного программного обеспечения, который устанавливает мой пользовательскийQueryFeature
для HttpContext
:
context.Features.Set<IQueryFeature>(new MyQueryFeature(context.Features));
и использовал его во время настройки приложения.
Не забывайте, что после этого все ваши параметры останутся закодированными в URL, если они были.