欢迎来到球速体育·(中国)官方网站QIUSU SPORTS!

ASP.NET

当前位置: 球速体育·(中国)官方网站 > 网络编程 > ASP.NET

Core 路由约束

时间:2024-08-04 04:57:19|栏目:ASP.NET|点击:

  球速体育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

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:88888888 | 邮箱:aihaoedu.com

Copyright © 球速体育·(中国)官方网站 版权所有