我正在开发.net核心应用程序。我正在尝试访问中间件中的路由数据,但它始终返回null。
这是控制器的基本路线
[Route("User/{UserId}/Quote")]
public class QuoteController : ControllerBase
我的目标是尝试在中间件中获取UserId,我将其用于其他地方的身份验证。我的问题是,为什么GetRouteData()调用总是返回null?
答案 0 :(得分:1)
路由数据是由MVC中间件设置的,该中间件会在下游显示出来。您必须将context.GetRouteData()调用移至等待下一个调用之后的行以访问路由数据。
请参见https://stackoverflow.com/a/42583583/2108241上的图片以供参考。
奇怪的是,如果我将代码放在UseMvc()之后,它甚至不会 到达这一行
一旦MVC中间件处理了请求,它将把响应发送回客户端,并且不处理对管道中下一个中间件的控制。