.NET Core 3.X路由中间件和终结点中间件
2024-10-14
16
在ASP.NET Core 3.X里app.UseRouting();和app.UseEndpoints成对出现。
app.UseRouting()负责匹配路由与终结点(端点),解析出路由信息(把请求解析成路由),写进HttpContext,传给下一个中间件。
UseRouting根据路由信息来选择一个端点。端点就是一个终端中间件(末尾的),布置又一个,每一个Action都可以是一个终端中间件。
UseEndpoints终结点中间件,与UseRouting中间件必须成对使用,两个中间件之间还能添加一些其他的中间件。这里是配置中间件和路由之间的映射。终结点可以简单理解为 MVC的/控制器/action。
以下示例说明UseRouting中间件获取路由信息,包括路由数据,获取对应中间件。
app.UseRouting();
//自己添加一个中间件,获取路由信息
app.Use(async (context, next) =>
{
var ep = context.GetEndpoint();
//如果用模板可以或者值
var rv = context.Request.RouteValues;
await next();
});
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
endpoints.MapGet("/Home", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
});
如果把自己的中间件放在UseRouting之前,则ep为Null。
UseEndpoints则负责配置和执行。
更新于:4天前赞一波!
相关文章
- ASP.NET Core 2.1中的ActionResult<T>
- .NET Core 3.0创建一个单独的可执行文件
- 在ASP.NET Core 2.1中使用HttpClientFactory的3种方法
- .NET Core MVC应用程序创建教程
- .NET Core中的File和PhysicalFile
- .NET Core 读取配置文件方法
- .NET Core 管道模型中间件及管道模拟实现
- ASP.NET Core多环境配置
- .NET Core 日志配置,NLog配置示例
- ASP.NET Core主机和应用启动流程
- .NET Core SkiaSharp替代System.Drawing的用法
- .Net报错Could not find a part of the path bin\roslyn\csc.exe
- IIS中.NET Core报错HTTP Error 500.31 - ANCM Failed to Find Native Dependencies
- .NET Core分部视图PartialView用法
- .NET Core 视图组件Component用法
- ASP.NET Core的三种部署方式
- .NET Core中使用System.Drawing处理图像
- .NET Core Razor Page ajax请求返回400 Bad request
- .NET Core上传文件报Access xxx.tmp is denied错误
- ASP.NET Core 使用Razor code blocks替代@helper
文章评论
评论问答