routing - 如何在 .net 核心中间件中获取 RouteData?
问题描述
我正在开发一个 .net 核心应用程序。我正在尝试访问中间件中的路由数据,但它总是返回 null。
这是控制器的基本路线
[Route("User/{UserId}/Quote")]
public class QuoteController : ControllerBase
我的目标是尝试在中间件中获取 UserId,我正在使用它在其他地方进行身份验证。我的问题是为什么 GetRouteData() 调用总是返回 null?
解决方案
路由数据由 MVC 中间件设置,该中间件在下游进一步出现。您必须在 await next 调用之后将 context.GetRouteData() 调用移动到该行以访问路由数据。
请参阅https://stackoverflow.com/a/42583583/2108241上的图片以供参考。
奇怪的是,如果我将代码放在 UseMvc() 之后,它甚至不会到达这一行
一旦 MVC 中间件处理了请求,它就会将响应发送回客户端,并且不会将控制权处理给管道中的下一个中间件。
推荐阅读
- reactjs - 当我在反应中按下获取按钮时,对象数组没有被获取
- php - 使用 ajax、jquery 更新多个 HTML 标签
- angular - 来自用户输入的角度获取请求
- javascript - 如果我想导入超过 1 个 CSS 文件,为什么多个 @import 在 Vue.js 项目中不起作用?
- revit - 长度和带值有什么区别
- c# - C# ASP.NET MVC 计算销售税
- python - 扫雷代码在没有最大递归深度的情况下打开零框
- java - 是什么导致我的 Jackson ObjectMapper 序列化输出无效 JSON(键周围没有引号)?
- c++ - GMock:错误:无法将 'cv::MatExpr' 转换为 'bool' 作为回报
- ios - iPhone X 调用伪造的 applicationWillResignActive ,然后调用 applicationDidBecomeActive 不久