【Web.路由】——路由模板

路由模板负责根据规则生成URL,从而使得请求可以正常访问到资源。

总之就是——》》》

规范如何写一个url,并且命名以方便进行管理。

在Asp.net core中的Http管道机制,UseRouting()和 UseEndpoints()这两个中间件来实现整个路由系统。关于asp.netCore中的路由的原理,可以看这篇文章

在Web主机启动后,会进行路由配置,首先就是根据路由配置的URL模板去生成URL,并结合Controller和Action为终结点。

这个URL模板是在UseEndPoints()方法委托参数MapControllerRoute()方法配置的。

模板参数

在MapControllerRoute()方法中

(1). Name 称为路由模板的名称。
(2). Pattern 称为路由模板的 URL 模式,Pattern 本身的含义就是模式,这是在ASP.NET Core 3.x 及高版本修改后的参数名称。

(3). constrains:路由约束

。。。

在一个Web应用中,可以配置多个路由模板来适应多种URL,其中只需要Name不同即可。

URL模式

组成部分

(1). 一对花括号{}:必须存在,表示一个占位符。
(2). 路径分隔符:/,由分隔符隔开的称为段,必须存在路径分隔符,默认情况下控制器、操作和参数之间必须使用/作为路径分隔符,参数后面可以使用*来实现任意的 URL 段_>任意格式的URL
(3). 路由参数:如 controller、action,由于 MVC 中路由就是根据控制器和操作定位资源的,所以这 2 个参数必须存在,也可以有其它的路由参数。如controller=Home,controller 就是路由参数。
(4). 路由参数值:路由参数后面使用=赋值,这个值就是数由参数值。如controller=Home,Home 就是路由参数值。

(5). 可选参数:使用 ?跟随的称为可选参数,可有可无。如 id?表示 id 参数是可选的。

路由参数

必选参数

从这个路由模板来看,{controller}和{action}是约定的,不可省略或修改成别的名称

(1). {controller}表示控制器占位符,其中 controller 替换为控制器的具体名称,如 Home,就表示 HomeController 控制器,去掉后缀。
(2). {action}表示操作占位符,其中 action 替换为操作的具体名称,也就是控制器下操作方法的名称。如 Index,就表示 Index()操作方法。
(3). 同时,还给 controller 指定默认的值是 Home,action 指定默认值是Index。当在 URL 上未指定控制器和操作时,默认使用 Home 和 Index 访问。

当没有配置的时候,可能会返回一个未响应的页面。

可选参数

顾名思义,就是可以没有这个参数。

对于路由模板中的{id?}表示可选参数,也就是 id 这个参数可以有,也可以没有。

我们可以看一下默认的控制器中的方法

这个是在home控制器下,由于在 URL 上,id 参数是放在/Home/Index/后面的,所以就认为
id 是 Index()方法的参数,可以是任意类型。

在asp.net core的操作是——>

url——>控制器——>控制器中的方法——>参数绑定——>razor页面去将参数进行显示

比如到最后的razor中是

这样就将url中的id直接赋值到前端UI中了。

关于路径分隔符,固定URL段和通配符

对于正常的 URL 地址,都是由 / 分隔符将路由段分开的,因此——————>
在 URL 默认的模式中,也是使用 / 将控制器、操作、参数分开

使用规范的/ 

使用固定URL段

使用通配符*

使用通配符的注意事项

(1). 必须在{}内使用。
(2). 必须放在路由参数的前面。
(3). 路由参数不能是可选的。
(4). 必须是 URL 模式中最后一个 URL 段。

今天就分享到这里。同时欢迎关注gzh——》上位机PLC自动化技术研究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matrix Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值