我们需要明确的一点就是,一个URL地址就是一个路由值。
而路由约束,就是制定出的一套规则,只有路由值与路由约束中的规则匹配,才可以进行下一步操作。
路由约束不仅可用于路由请求,还可以用于链接的生成。
参数值约束
假设存在一个URL地址的配置
app.MapControllerRoute(name: "default",pattern: "{controller=Home}/{action=Index}/{id?}",constraints: new { id = "[0-9]" });
这个路由约束,指的就是,当id=0-9时,这个url可以匹配,当不等于时,是不会匹配到终结点的。
因此当id不为0-9时,网页会返回找不到网页。
参数类型约束
可以约束参数的类型为特定的类型,当输出不对是,返回找不到网页404.
app.MapControllerRoute(name: "default",pattern: "{controller=Home}/{action=Index}/{id:int}");
查询相关资料,可以看如下类型约束表格
函数约束
即这个参数会先进入这个函数中进行判断,不满足返回404
具体的使用就是
app.MapControllerRoute(name: "default",pattern: "{controller=Home}/{action=Index}/{id:max(200)}");
混合约束
顾名思义,就是以上的约束一起使用。使用时,是这么使用的
app.MapControllerRoute(name: "default",pattern: "{controller=Home}/{action=Index}/{id:int:min(30):max(190)}");
只要组合在一起能限制符合需求的参数值,都可以使用冒号连接在一起。
当然以上是对于参数类型单一或者较为少的情况,如果需要对参数进行验证的话,建议使用框架。
同时欢迎关注gzh——>上位机PLC自动化技术研究,里面会陆陆续续分享一些内容,欢迎大家。