新开发一个中间件,需要使用到路由信息。
但是,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缺一不可。

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