C# ASP.NET Core 中的路由是什么?
csharpserver side programmingprogramming更新于 2025/9/30 13:52:17
路由用于将请求映射到路由处理程序。
路由在应用程序启动时配置,可以从 URL 中提取用于处理请求的值。
路由基础知识
路由使用路由(IRouter 的实现)
- 将传入请求映射到路由处理程序
- 生成响应中使用的 URL
路由通过 RouterMiddleware 类连接到中间件管道。ASP.NET MVC 将路由添加到中间件管道作为其配置的一部分
URL 匹配
传入的请求进入 RouterMiddleware,它会按顺序在每个路由上调用 RouteAsync 方法。
IRouter 实例选择是否处理通过将 RouteContext Handler 设置为非空的 RequestDelegate 来处理请求。
如果路由设置了处理程序,则会调用该处理程序来处理请求,并且不会处理其他路由。
如果所有路由都执行完毕,但未找到针对某个请求的处理程序,则中间件将调用 next 并调用请求管道中的下一个中间件。
URL 生成
URL 生成遵循类似的迭代过程,但首先是用户或框架代码调用路由集合的 GetVirtualPath 方法。
然后,每个路由将按顺序调用其 GetVirtualPath 方法,直到返回非空的 VirtualPathData 为止。
创建路由
路由提供 Route 类作为 IRouter 的标准实现。Route 使用路由模板语法来定义在 RouteAsync 时将与 URL 路径匹配的模式。调用。
当调用 GetVirtualPath 时,Route 将使用相同的路由模板生成 URL。
示例
routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");
框架提供了一组用于创建路由的扩展方法,例如 −
MapRoute MapGet MapPost MapPut MapRoute MapVerb
相关文章
打印
下一节:如何在 C# ASP.NET Core 中启用 Session? ❯❮ 上一节:C# Asp.net Core 中的 IApplicationBuilder.Use() 和 IApplicationBuilder.Run() 有什么区别?

