什么是路由?解释它在 ASP.NET Core 中是如何工作的

在 Web 应用程序框架的上下文中,路由将传入的 HTTP 请求与可执行代码相匹配。可执行代码用作处理请求并返回响应的端点。

ASP.NET Core 在应用程序启动时定义和配置端点。路由还处理从请求中提取值,构建适当的对象,并将它们传递给处理请求的方法。

路由ASP.NET从一开始就是Core的重要组成部分。但是,ASP.NETCore 3.0 引入了一个新的路由系统,称为端点路由。它将路由与 MVC 框架分离,使其成为ASP.NETCore 的一个更基本的特性。您仍然可以使用它来配置 MVC 路由,但此外,新的路由系统允许您使用以下方式配置路由:

  • 控制器

  • 剃刀页面

  • 信号R

  • gRPC 服务

  • 委托和 lambda

您还可以在ASP.NETCore 中使用路由将具有多个 URL 的请求映射到相同的控制器或 Razor 页面。

当您ASP.NET使用模板生成新的Core 应用程序时,它会在生成的代码中包含路由。您在中间件管道中注册路由,该管道Configure()在 Startup 类的方法中定义。在下面的示例中,粗体代码为您的应用程序配置路由。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env){

   if (env.IsDevelopment()){

      app.UseDeveloperExceptionPage();

   }else{

      app.UseExceptionHandler("/Error");

      //默认 HSTS 值为 30 天。您可能希望为生产更改此设置

      app.UseHsts();

   }

   app.UseHttpsRedirection();

   app.UseStaticFiles();

   app.UseRouting();

   app.UseAuthorization();

   app.UseEndpoints(endpoints =>{

      endpoints.MapRazorPages();

   });

}

  • UseRouting() 方法将路由匹配添加到中间件管道,它在检查定义的端点后为请求选择最佳匹配。

  • UseEndPoints() 将端点执行添加到中间件管道。

您可以使用两种不同的方式配置路由:

  • 基于约定的路由

  • 基于属性的路由

您选择哪种路由策略取决于您正在构建的 Web 应用程序的类型,即 MVC 或 Razor Pages,以及您是构建 API 还是带有用户界面的 Web 应用程序。

基于约定的路由对您的应用程序全局适用,即所有 MVC 控制器或 Razor 页面都可以使用它。您可以使用定义良好的ASP.NET核心约定来定义控制器、方法或 Razor 页面,以将请求映射到端点。尽管这种方法适用于大多数情况,但它使创建自定义路由和端点变得具有挑战性。

使用基于属性的路由,您可以使用 C# 属性(例如控制器上的 [Route])将给定 URL 映射到特定端点。基于属性的路由在为路由提供自定义名称和将请求匹配到端点方面提供了更大的灵活性。您可以明确定义每个端点的 URL 应该是什么。虽然它可能很冗长,但额外的灵活性可以证明是有用的。

以上是 什么是路由?解释它在 ASP.NET Core 中是如何工作的 的全部内容, 来源链接: utcz.com/z/355095.html

回到顶部