Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Routing 如何在.net核心中间件中获取RouteData?_Routing_.net Core_Asp.net Core Middleware - Fatal编程技术网

Routing 如何在.net核心中间件中获取RouteData?

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

我正在开发一个.net核心应用程序。我试图在中间件中访问路由数据,但它总是返回null

这是控制器的基本路由

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

我的目标是尝试在中间件中获取UserId,我将其用于其他地方的身份验证。我的问题是,为什么GetRouteData()调用总是返回null?

路由数据是由MVC中间件设置的,该中间件将在流的后面出现。您必须将context.GetRouteData()调用移动到等待下一个调用之后的行,以访问路由数据

请参阅上的图片以供参考


奇怪的是,如果我将代码放在UseMvc()之后,它甚至不会 到这条线


一旦MVC中间件处理了请求,它就会将响应发送回客户端,而不会处理对管道中下一个中间件的控制

如果您在使用MVC之前执行此操作,那么我认为您将无法访问路由。奇怪的是,如果我将代码放在UseMvc()之后,它甚至无法到达这一行。我的体验与@yesIcan完全相同