Как получить RouteData внутри промежуточного программного обеспечения ядра.net?

Я работаю над основным приложением.net. Я пытаюсь получить доступ к данным маршрута в промежуточном программном обеспечении, но он всегда возвращает ноль.

Вот контроллер базы маршрута

[Route("User/{UserId}/Quote")]
    public class QuoteController : ControllerBase

Моя цель - попытаться получить UserId внутри промежуточного программного обеспечения, которое я использую для аутентификации где-то еще. У меня вопрос, почему вызов GetRouteData() всегда возвращает нуль?

1 ответ

Данные о маршруте устанавливаются промежуточным программным обеспечением MVC, которое появляется в дальнейшем. Вы должны переместить вызов context.GetRouteData() в строку после следующего вызова в ожидании, чтобы получить доступ к данным маршрута.

См. Изображение на /questions/45701503/promezhutochnoe-po-yadra-aspnet-protiv-filtrov/45701527#45701527 для справки.

что странно, что если я добавлю код после UseMvc(), он даже не попадет в эту строку

Как только промежуточное программное обеспечение MVC обрабатывает запрос, оно отправляет ответ клиенту и не обрабатывает элемент управления промежуточным программным обеспечением, следующим в конвейере.

Другие вопросы по тегам