asp.net培训班(跟着官网学ASP)

 2025-07-29 10:18:01  阅读 963  评论 0

摘要:路由是个啥东西?有啥用?官方说路由系统通过添加终结点,构建在中间件管道之上。路由负责匹配传入的 HTTP URL请求,然后将这些请求发送到应用的可执行终结点,那啥又是终结点啊?终结点代表应用的功能单元.整体看来,大概意思就是,当我们发起HTTP请求时,路由会负责匹配请求

路由是个啥东西?有啥用?官方说路由系统通过添加终结点,构建在中间件管道之上。路由负责匹配传入的 HTTP URL请求,然后将这些请求发送到应用的可执行终结点,那啥又是终结点啊?终结点代表应用的功能单元.整体看来,大概意思就是,当我们发起HTTP请求时,路由会负责匹配请求路径和HTTP的请求方法,然后执行我们注册好的实现方法。

注册路由

注册路由,一般通过WebApplication对象或者Route特性两种方式,WebApplication继承了IEndpointRouteBuilder接口,微软配置了EndpointRouteBuilderExtensions扩展类来注册路由

跟着官网学ASP.NET Core 6.0之路由

该扩展类为我们提供了分别对应HTTP请求方式的注册方法,如果我们要注册一个GET请求的路由,则直接使用app.MapGet()方法

跟着官网学ASP.NET Core 6.0之路由

这里我们注册一个简单的路由app.MapGet("/hello", () => "Hello World!");,此时直接通过localhost:port/hello便可以访问到该路由

跟着官网学ASP.NET Core 6.0之路由

通过特性注册路由

这里,我们新建一个名为RouteController的控制器类,在我们通过VS新建一个WebApi的控制器时,模板会自动在Controller类为我们添加上[Route("api/[controller]")],该路由以为着我们需要通过/api/控制器名来访问该控制器,这时候,会根据HTTP的请求方式来匹配该路径下的方法

跟着官网学ASP.NET Core 6.0之路由

此时该类下面并没有相应规则的实际可执行方法,那么当我们直接访问/api/route,便会提示404,如果,我们在RouteController控制器中写一个简单的方法,

跟着官网学ASP.NET Core 6.0之路由

它会把该方法注册来路由中,因为没有指定HTTP的请求方式,此时,不管是GET还是POST,或者其他请求方式,都可以访问到该路由

在RESTful架构中,需要规范我们的名称和HTTP请求方式,不同的请求方式来处理不同的业务。在ASP.NET Core 6.0中,我们可以通过HttpMethod来指定请求方式

1
2
3
4
[HttpGet]
public string Hello() {
    return "Hello World!";
}

当我们在Hello方法加上HttpGet,表示该方法只能通过GET请求方式才能执行。

Route特性不仅可以作用于Controller类,还可以在方法上

跟着官网学ASP.NET Core 6.0之路由

跟着官网学ASP.NET Core 6.0之路由

路由模板

Route特性参数可以传入模板字符串,在Route参数中加入一对{}符号,{}符号里面便是方法参数名,如:

1
Route("sayhello/{name}")

跟着官网学ASP.NET Core 6.0之路由

此时,我们访问接口时就必须跟上{name}的值,否则会提示404

跟着官网学ASP.NET Core 6.0之路由

除了Route可以传入模板字符串外,其实HttpGet这类特性也可以做类似Route路由的工作,并也可以传入字模板符串

跟着官网学ASP.NET Core 6.0之路由

为了防止用户恶意传入非法参数,ASP.NET Core 6.0也提供了路由约束,它会按照规则去匹配参数是否符合规则

跟着官网学ASP.NET Core 6.0之路由

,如果不符合,则会直接返回404,如:

1
2
3
4
5
6
7
8
9
10
[Route("api/[controller]")]
[ApiController]
public class RouteController : ControllerBase
{
   
    [HttpGet("sayhello/{name:length(2,5)}")]
    public string Hello(string name) {
        return #34;Hello {name}!";
    }
}

如果URL中name这个参数的占位符长度小于2或者大于5,都会提示404

跟着官网学ASP.NET Core 6.0之路由

跟着官网学ASP.NET Core 6.0之路由

跟着官网学ASP.NET Core 6.0之路由

当然,也可以官方提供的规则不能满足你的要求,别担心,它还给我们提供了正则匹配,如果还是不满足,咱们还可以继承IRouteConstraint接口来自定义。

其实路由这一小节东西非常多,要学习完得花些时间了,这里只是走马观花式的大概了解一下常用的基础内容。

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【asp.net培训班(跟着官网学ASP)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/fangfa/1967037.html

标签:aspnet培训班

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0559秒, 内存占用1.93 MB, 访问数据库24次

陕ICP备14005772号-15