asp.net core 在中间件中获取路由信息(RouteData)

新开发一个中间件,需要使用到路由信息。

但是,RouteData是在MVC中间件中才会被赋,我们的中间件是在MVC中间件之前使用的,这样一来,就没办法获取到路由信息了。

好在使用EndPointRouting帮我们解决了这个问题。

 

public void ConfigureServices(IServiceProvider services)
{
    ...
    
    // SetCompatibilityVersion也是必须的,这边不能忘记写了
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); 
}

public void Configure(IApplicationBuilder app)
{
    ....
    app.UseEndpointRouting();
    // 你的中间件
    app.UseMvc();
}

  

SetCompatibilityVersion和UseEndpointRouting缺一不可。

 

 

如图是在中间件中获取到的路由数据。

posted @ 2019-09-16 14:34  狂乱贵公子  阅读(2027)  评论(0编辑  收藏  举报