Как получить 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 обрабатывает запрос, оно отправляет ответ клиенту и не обрабатывает элемент управления промежуточным программным обеспечением, следующим в конвейере.