Core 路由约束
球速体育welcome我们在id参数上应用了Integer路由约束,这告诉dotnet匹配url中id参数是int类型
为了测试这个int约束是如何工作的,在项目的HomeController添加check方法:
现在创建Check视图在Home-Check文件夹,Check视图代码如下,这个视图显示ViewBag变量的值,该变量保存了客户自定义段Id的值
现在请求url- 这次我们提供了一个int类型为100的值给id参数,因此路由约束获得匹配,这个视图将显示-Id Value is:100 ,如下图显示:
在上面路由我们能在int后面添加?,指定路由第三段可以接受null值,下面路由约束告诉ASP.NET Core 匹配URL要么是null要么是int值针对第三段
当int类型的url段位于在指定的范围内Range约束能使用匹配,下面路由,我使用了Range 约束:
Regex路由约束使用正则表达式匹配url,相比别的约束具有更好灵活性,我们能使用正则表达式创建不同的规则,我们在下面路由中使用了正则表达式,针对controller参数
这个路由将会匹配url的第一个参数段并且使用字母H开始,我们采用另外正则约束例子,修改路由如下:
我们也可以通过使用:符号将路由约束组合在一起使用,看下面路由,我们联合使用alpha和regex约束,这意味着id段要么匹配null 要么匹配下面两者:
我们能够创建自定义约束用来满足我们客户所需要的特殊场景,让我们通过一个例子来理解客户自定义约束
例子:有名字列表 如Shiv、Vishnu、Ram、Krishn等,这里我们创建一个路由匹配 ,当下面6个神的名字针对id段的值
1 在应用程序中创建一个文件,名字为CustomConstraint,你可以选择任何你喜欢的名字
创建一个自定义约束,该类继承自IRouteConstraint接口,IRouteConstraint接口定义匹配的方法并且这个方法决定是否匹配url
在这个方法中,我们使用routeKey对象能够获取id段的值,并且检查是否包含我们列表中的名字,如果列表中包含相应名称将返回true
最后一件事情,在路由中使用这个约束,因此我们需要做一些配置在Program.cs类
我们告诉asp.net core 路由,我们创建自定义约束并且使用allowedgods名字添加到路由字典中
我们对id参数使用这个约束,像 - {id:allowedgods}, 我们做个测试,运行程序进入我们将看到Id值 在浏览器中Shiv, 图片如下:
现在,进入- /Biden,列表中没有发现Biden,所以不会匹配该URL,我们将获取到404错误
上一篇:6项目在Windows下构建Docker镜像并本地导出分发到CentOS系统下
栏 目:ASP.NET
下一篇:如何使用 Visual Studio 2019 在 ASPNET 中生成 PDF 文件?
本文标题:Core 路由约束
本文地址:http://aihaoedu.com/wangluobiancheng/851.html
您可能感兴趣的文章
- 10-26ASP NET中使用AJAX的教程
- 10-26ASPNET 40从入门到精通教程
- 10-26ASPNET程序设计教程(第讲)ppt
- 10-26ASP NET 40 基础教程(C)第一章 ASP NET 40开发基础
- 10-26ASPNET程序设计教程-ASPNET初步ppt
- 10-24asp网站空间
- 10-24微软OpenAI API终止!
- 10-24ASP NET 40 基础教程(C)第八章 ADO NET 数据库编程
- 10-24一款软件开发框架—NET——APP开发直播软件体育APP
- 10-23微软 Build 2021 汇总:普通人也能编程的 GPT-3、Windows 十年重磅更新
阅读排行
推荐教程
- 09-04AMD 5800X3D平台遭殃!微软Win11系统再现大Bug
- 06-26永不过时的时装界高级色系 - 经典黑白灰
- 08-06工作中必备的12个Git命令
- 10-21微软全新 Surface Laptop 第 7 版 Pro 第 11 版上手
- 09-04什么是ASP?
- 09-02教程 - 自强学堂
- 09-28颜值与性能并存!Surface Laptop笔记本评测
- 08-267 后端框架:一句话启动
- 09-07aspnet基础教程2963241950
- 08-06杀疯了!微软:比NET7超级快更快!