Routing 如何在.net核心中间件中获取RouteData?
我正在开发一个.net核心应用程序。我试图在中间件中访问路由数据,但它总是返回null 这是控制器的基本路由Routing 如何在.net核心中间件中获取RouteData?,routing,.net-core,asp.net-core-middleware,Routing,.net Core,Asp.net Core Middleware,我正在开发一个.net核心应用程序。我试图在中间件中访问路由数据,但它总是返回null 这是控制器的基本路由 [Route("User/{UserId}/Quote")] public class QuoteController : ControllerBase 我的目标是尝试在中间件中获取UserId,我将其用于其他地方的身份验证。我的问题是,为什么GetRouteData()调用总是返回null?路由数据是由MVC中间件设置的,该中间件将在流的后面出现。您必须将context.G
[Route("User/{UserId}/Quote")]
public class QuoteController : ControllerBase
我的目标是尝试在中间件中获取UserId,我将其用于其他地方的身份验证。我的问题是,为什么GetRouteData()调用总是返回null?路由数据是由MVC中间件设置的,该中间件将在流的后面出现。您必须将context.GetRouteData()调用移动到等待下一个调用之后的行,以访问路由数据 请参阅上的图片以供参考
奇怪的是,如果我将代码放在UseMvc()之后,它甚至不会 到这条线
一旦MVC中间件处理了请求,它就会将响应发送回客户端,而不会处理对管道中下一个中间件的控制 如果您在使用MVC之前执行此操作,那么我认为您将无法访问路由。奇怪的是,如果我将代码放在UseMvc()之后,它甚至无法到达这一行。我的体验与@yesIcan完全相同