应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

.net core3.x路由

7124人阅读 2020/12/10 19:22 总访问:5193806 评论:0 收藏:0 手机
分类: .NET Core


匹配单个路由
匹配固定的单个路径

  1. endpoints.MapControllerRoute(
  2.     name: "AA",
  3.     pattern: "About",
  4.     defaults: new { controller = "About", action = "Index" });


action和controller交换顺序
action和controller交换顺序,自定义路由模块如下 把两个顺序互换即可。

  1. endpoints.MapControllerRoute(
  2.     name: "BB",
  3.     pattern: "{action=Index}/{controller=Home}/{id?}");


只限制控制器

因为只能输入控制器,action不能输入,所以action只能是默认的index,action恒等于index 如果你输入的是:/home,其实访问的就是home/index(默认的) 如果你输入的是:/news,其实访问的就是news/index(默认的)

  1. endpoints.MapControllerRoute(
  2.     name: "AA",
  3.     pattern: "{controller=Home}",
  4.     defaults: new { controller = "Home", action = "Index" });


自定义地址规则

控制器就是死的,控制器只能是home,不是mylove,mylove只是我自己写死的路由规则。

必须满足自己定义的规则

  1. endpoints.MapControllerRoute(
  2.     name: "AA",
  3.     pattern: "mylove/{action}",
  4.     defaults: new { controller = "Home", action = "Index" });


上面几个定义完整点的代码

  1. app.UseEndpoints(endpoints =>
  2. {
  3.     //匹配单个路由
  4.     endpoints.MapControllerRoute(
  5.         name: "AA",
  6.         pattern"About",
  7.         defaultsnew { controller = "About", action = "Index" });
  8.     //只限制控制器
  9.     endpoints.MapControllerRoute(
  10.         name: "AA",
  11.         pattern"{controller=Home}",
  12.         defaultsnew { controller = "Home", action = "Index" });
  13.     //自定义地址规则
  14.     endpoints.MapControllerRoute(
  15.         name: "AA",
  16.         pattern"mylove/{action}",
  17.         defaultsnew { controller = "Home", action = "Index" });
  18.     //action和controller交换顺序
  19.     endpoints.MapControllerRoute(
  20.         name: "BB",
  21.         pattern"{action=Index}/{controller=Home}/{id?}");
  22.     //默认路由
  23.     endpoints.MapControllerRoute(
  24.         name: "default",
  25.         pattern"{controller=Home}/{action=Index}/{id?}");
  26. });
  27. }


路由约束
约束路由参数必须是整形,bool,时间,小数,字符串限制等等

  1. //约束参数id必须是整数
  2. endpoints.MapControllerRoute(
  3.     name: "default",
  4.     pattern: "{controller=Home}/{action=Index}/{id:int?}");
  5. //约束active参数必须是bool值
  6. endpoints.MapControllerRoute(
  7.     name: "default",
  8.     pattern: "{controller=Home}/{action=Index}/{active:bool?}");
  9. //路由约束 - 匹配decimal
  10. endpoints.MapControllerRoute(
  11.     name: "default",
  12.     pattern: "{controller=Home}/{action=Index}/{price:decimal?}");
  13. //路由约束 - 匹配字符串长度
  14. endpoints.MapControllerRoute(
  15.     name: "default",
  16.     pattern: "{controller=Home}/{action=Index}/{username:minlength(4?}");



路由约束使用正则表达式
代码如下:

  1.  endpoints.MapControllerRoute(
  2.         name: "people",
  3.         pattern: "People/{ssn}",
  4.         constraints: new { ssn = "^\\d{3}-\\d{2}-\\d{4}$", },
  5.         defaults: new { controller = "People", action = "List", });

能正确匹配的格式如下:



其他一些自定义路由

  1. endpoints.MapControllerRoute(
  2.     name: "UserCategory",
  3.     pattern: "{UserName?}/AA/Category/{id?}",
  4.     defaults: new { controller = "Category", action = "Category" }
  5. );
  6. endpoints.MapControllerRoute(
  7.     name: "Show",
  8.     pattern: "{UserName?}/AA/BB/{id?}",
  9.     defaults: new { controller = "ArticleDetails", action = "Index" }
  10.     );
  11. endpoints.MapControllerRoute(
  12.     name: "Resource",
  13.     pattern: "Resource/Show/{UserName?}/{id?}",
  14.     defaults: new { controller = "Resource", action = "Show" }
  15.     );
  16. endpoints.MapControllerRoute(
  17.     name: "Search",
  18.     pattern: "{UserName?}/search",
  19.     defaults: new { controller = "Search", action = "UserSearch" }


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

net core自定义路由

net core自定义路由和.net framework中差不多,例如在.net framework中的自定义路由routes.MapRoute( name:"ArticleS...

从博客文章的路由来看一点处理查询的方法

例如我们来看看一篇文章的路由www.tnblog.net/aojiancc2/article/details/2670这里的aojiancc2是用户名,后面的2670是id其...

net core webapi路由

如下我们可以通过路由传递两个参数请求地址参考如下: https://localhost:5001/api/home/aojiancc2/2622最后两个可以作为参...

angular路由导航配置

开发工具:VSCode打开终端输入命令创建crisis-list和hero-list组件nggeneratecomponentcrisis-listnggeneratecomponenthero...

.net mvc自定义路由上课笔记

自定义路由就是修改RouteConfig,进行路由配置默认的路由规则:/controller/action/{id} 控制器,action互换 //action...

菜鸟对mvc路由规则理解

今天第一次写文章,主要记录对mvc路由规则的了解 routes.MapRoute( name: "Default", ...

伪静态自定义路由与ORM介绍上课笔记

[TOC]伪静态什么是伪静态:看上去是静态页,其实还是动态的页面,看上去是.html结尾的但是其实页面还是动态比如本质.cshtml...

vue2教程中路由项目分析

main.jswebpack.config.js 中的 entry 属性告诉我们项目以 main.js 作为入口。 main.js 首先引入 vue 和 routes,vue 不多...

vue路由

后端人员来研究一哈前端的东西,感觉还是非常有趣实现一个简单的路由切换可以创建一个关于路由的js然后在里边配置一点东西e...

vue路由实现一个二级菜单。vue页面切换,vue子页面切换。vue菜单选中

效果如下:这种二级菜单或者三级菜单如果我们使用.net 的mvc来实现就很简单,整两个布局页可以轻松搞定来试试使用vue的路由...

.net core3.1使用API网关Ocelot五:配合consul实现动态路由

真正的项目中我们的服务会很多,如果一一地配置到配置文件,将会是一个巨大的工程,这个时候我们就可以让Ocelot与我们的服...

vue路由的简单使用,不使用脚手架

不使用脚手架,直接使用路由的形式,直接贴代码吧<!DOCTYPEhtml> <htmlxmlns="http://www.w3.org/1999/xhtm...

Angular路由复用策略 (切换tabs页面内容不丢失,保持原来状态)

一、引言 路由在执行过程中对组件无状态操作,即路由离退时组件状态也一并被删除;当然在绝大多数场景下这是合理的。进入...

Angular路由复用策略

路由在执行过程中对组件无状态操作,即路由离退时组件状态也一并被删除;当然在绝大多数场景下这是合理的。进入组件时会执...

.net core3.x中间件处理路由

.net core中可以使用中间件处理路由,如下在Configure直接使用://自定义中间件来实现一个路由 app.Use(next=>asynccon...