首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

构建可读性更高 ASP.NET Core 路由

那么,这篇文章就来介绍下,如何调整我们 ASP.NET Core 项目的路由规则,从而使我们项目的 URL 地址可读性更高。   ...PS:在构建 URL 过程中,采用大写地址还是采用小写地址,每个人都会有自己想法和这样做理由,这篇文章不讨论两种方案优劣,只是提供一种构建小写 URL 地址以及让我们 URL 可读性更高解决方案...在 ASP.NET Core 中,我们可以通过在 Controller 或是 Action 方法上添加 RouteAttribute 方式将用户自定义路由信息添加到项目的路由表中。...三、总结    在本章中,我们主要是调整了 ASP.NET Core 项目中默认路由,从而使项目的 URL 地址具有更好可读性。...通过使用小写路由和 hyphen(-) 路由,只是构建可读性更高 URL 地址第一步,在构建页面时,我们更应该考虑是如何使用少数单词就可以让用户清楚当前页面的功能,更简短,更易读 URL 不仅对于用户

64910

asp.net core 系列】4. 更高更强路由

前言 在之前我们介绍了请求通过路由寻找到控制器,以及控制器与视图数据流转。那么,我们回过头来,再看看路由一些其他用法。 ? 1....嗯,所以个人觉得Route Attribute应该是特性路由路由特性。 嗯,暂且甩开称呼问题,小伙伴们知道这是一种使用Attribute标记路由配置方案就行。...我们之前了解路由设置都是通过路由表设置,而Route Attribute则是另外一种方案。...默认情况下是0 Template 路由解析模板,也就是在《【asp.net core 系列】2 控制器与路由恩怨情仇》中介绍路由格式串 介绍了这么多,我们先来试试看,先拿出来之前文章创建MvcWeb...如果是以/ 开始,则表示该路由是根路由。 如果没有设置RouteAttribute,则表示当前方法是处理控制器配置路由方法。

59220
您找到你想要的搜索结果了吗?
是的
没有找到

ASP.NET Core路由:内联路由约束检验

[本文已经同步到《ASP.NET Core框架揭秘》之中] 1: public interface IRouteConstraint 2: { 3:     bool Match(HttpContext...当我们在一个ASP.NET Core应用中使用路由功能时候,除了需要注册这个RouterMiddleware中间件之外,一般还需要调用ServiceCollection扩展方法AddRouting注册一些与路由相关服务...我们利用资源文件来作为文本资源存储,如下图所示,我们在一个ASP.NET Core应用中创建了两个资源文件Resources.resx(语言文化中性)和Resources.zh.resx(中文),并定义了一个名为...---- ASP.NET Core路由[1]:注册URL模式与HttpHandler映射关系 ASP.NET Core路由[2]:路由系统核心对象——Router ASP.NET Core路由...[3]:Router创建者——RouteBuilder ASP.NET Core路由[4]:来认识一下实现路由RouterMiddleware中间件 ASP.NET Core路由[5]:内联路由约束检验

1.2K60

asp.net core路由

ASP.NET Core 中,路由是一个非常重要概念,它决定了如何将传入请求映射到相应处理程序。...本文将详细介绍 ASP.NET Core路由系统,包括路由基本原理、路由模板、路由参数、路由约束等内容,并提供相应代码示例。...UseRouting 和UseEndpoints 在asp.net core5之前默认模板项目里面,我们都能看到UseRouting和UseEndpoints这两个中间件。用于配置路由。...但是也可以手动显示调用这个方法来修改中间件执行顺序。 路由基本原理 在 ASP.NET Core 中,路由系统负责将传入 URL 请求映射到相应处理程序。...通过灵活使用路由系统,可以实现灵活 URL 映射和参数传递,从而构建强大 Web 应用程序。

18010

ASP.NET Core路由路由系统核心对象——Router

ASP.NET Core应用中路由机制实现在RouterMiddleware中间件中,它目的在于通过路由解析为请求找到一个匹配处理器,同时将请求携带数据以路由参数形式解析出来供后续请求处理流程使用...,并在成功匹配情况下解析出路由参数并指定请求处理器之外,Router路由解析还为另一个领用场景服务,那就是根据自身路由规则和提供参数生成一个URL。...如果Router完成路由解析并判断当前请求与自身路由规则一致,那么它会将解析出来路由参数转换成一个RouteData并存放到RouteContext对象代表上下文之中,另一个一并被放入上下文是代表当前请求处理器...RouteBase,前面演示实例体现基于“路由模板”路由解析策略就体现在这个类型中。...,RouteBase中实现只负责判断是否给定条件是否满足自身路由规则,并在规则满足情况下将解析出来路由参数保存到RouteContext这个上下文中。

1.2K10

理解ASP.NET Core - 路由(Routing)

接着,从刚才停下地方继续读取Url/ab|c|d,解析为/a|b|c|d 此时,Url中右侧值b与路由参数{b}匹配 最后,没有剩余路由模板段或参数,也没有剩余Url文本,因此匹配成功。...使用复杂段,相比普通路由模板来说,会造成更加昂贵性能影响 路由约束 通过路由约束,可以在路由匹配过程中,检查URL是否是可接受。另外,路由约束一般是用来消除路由歧义,而不是用来进行输入验证。...,否则,相比普通路由模板来说,会造成更加昂贵性能影响 自定义路由约束 先说一句,自定义路由约束很少会用到,在你决定要自定义路由约束之前,先想想是否有其他更好替代方案,如使用模型绑定。...ASP.NET Core默认使用 matcher 类型是DfaMatcher,DFA(Deterministic Finite Automaton)是一种被称为“确定有限状态自动机”算法,可以从候选终结点列表中查找到匹配度最高那个终结点...,如果你想要进行更加深入透彻了解,推荐阅读蒋金楠老师ASP.NET Core 3框架揭秘路由部分。

1.6K40

ASP.NET Core路由路由系统核心对象——Router

ASP.NET Core应用中路由机制实现在RouterMiddleware中间件中,它目的在于通过路由解析为请求找到一个匹配处理器,同时将请求携带数据以路由参数形式解析出来供后续请求处理流程使用...[本文已经同步到《ASP.NET Core框架揭秘》之中] 目录 一、IRouter接口 二、RouteContext 三、RouteData 四、Route 五、RouteHandler 总结 一...,并在成功匹配情况下解析出路由参数并指定请求处理器之外,Router路由解析还为另一个领用场景服务,那就是根据自身路由规则和提供参数生成一个URL。...如果Router完成路由解析并判断当前请求与自身路由规则一致,那么它会将解析出来路由参数转换成一个RouteData并存放到RouteContext对象代表上下文之中,另一个一并被放入上下文是代表当前请求处理器...RouteBase,前面演示实例体现基于“路由模板”路由解析策略就体现在这个类型中。

1.9K40

干货 | 如何编写可读性更高代码?

没有优先事项而不是其他优先事项(当所有事情都是优先事项时,什么都不是)是不存在。 ? 培养清晰感 写得好需要知道好写作是什么样,而创建清晰代码则需要知道清晰代码是什么样。...阅读备受赞誉代码可以使您对好外观有所了解。 对清晰代码一种良好理解不会阻止您编写不可读代码,但是它将告诉您哪些部分闻起来不正确。 编辑 关于如何编写代码第一个想法很少会是最清楚。...当您谈论代码做什么时,您所谈论是当前抽象级别。当您谈论代码是如何实现时,您在谈论是抽象下一层。 在该welcome方法中,它作用是发送欢迎电子邮件(如果尚未发送)。...具有单一抽象级别的方法往往读起来就像是关于正在发生事情故事。 ? 突破功能 通过将大型函数分解为较小函数,可以使它们(有时!)更具可读性。...当碰巧共享少量行两个功能成为重复数据删除目标时,DRY开始走得太远。完全避免重复行意味着您将得到混乱,无意义抽象,这些抽象仅用于容纳那几条共享行。

72820

ASP.NET Core端点路由 作用原理

端点路由(Endpoint Routing)最早出现在ASP.NET Core2.2,在ASP.NET Core3.0提升为一等公民。 ?...Endpoint Routing动机 在端点路由出现之前,我们一般在请求处理管道末尾,定义MVC中间件解析路由。这种方式意味着在处理管道中,MVC中间件之前中间件将无法获得路由信息。...MapGet、MapPost等方法将 处理逻辑连接到路由系统;其他方法将 ASP.NET Core框架特性连接到路由系统。...结论 端点路由:允许ASP.NET Core应用程序在中间件管道早期确定要调度端点, 以便后续中间件可以使用该信息来提供当前管道配置无法提供功能。...这使ASP.NET Core框架更加灵活,强化端点概念,它使路由匹配、解析功能与端点调度功能脱钩。

1.1K10

ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门

一、前言 1、本文主要内容 ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC带路径参数路由示例 ASP.NET Core MVC固定前/后缀路由示例 ASP.NET...Core MVC正则表达式匹配路由示例 ASP.NET Core MVC路由约束与自定义路由约束 ASP.NET Core MVC RouteAttribute绑定式路由使用介绍 2、本教程环境信息...MVC 路由简介 1、ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC路由作用就是将应用接收到请求转发到对应控制器去处理。...Core MVC 绑定式路由配置 1、路由配置风格 集中式配置 前面章节提到路由配置都是在Startup类中进行集中式路由配置,集中配置路由,除了template中没有配置{controller...view=aspnetcore-2.1 ---- 系列名称:ASP.NET Core 2.1 入门教程 上一篇:ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web

1.5K30

ASP.NET Core Blazor Webassembly 之 路由

web最精妙设计就是通过url把多个页面串联起来,并且可以互相跳转。我们开发系统时候总是需要使用路由来实现页面间跳转。传统web开发主要是使用a标签或者是服务端redirect来跳转。...那今天来看看Blazor是如何进行路由。 使用@page指定组件路由path 我们可以在Blazor里给每个组件指定一个path,当路由匹配时候会显示这个组件。...总结 到此Blazor路由内容学习差不多了,整体上没有什么特别的,就是NavigationManager只有前进方法没有后退是比较让我震惊。...相关内容: ASP.NET Core Blazor Webassembly 之 数据绑定 ASP.NET Core Blazor Webassembly 之 组件 ASP.NET Core Blazor...初探之 Blazor WebAssembly ASP.NET Core Blazor 初探之 Blazor Server

2.7K10

ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门

一、前言 1、本文主要内容 ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC带路径参数路由示例 ASP.NET Core MVC固定前/后缀路由示例 ASP.NET...Core MVC正则表达式匹配路由示例 ASP.NET Core MVC路由约束与自定义路由约束 ASP.NET Core MVC RouteAttribute绑定式路由使用介绍 2、本教程环境信息...MVC 路由简介 1、ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC路由作用就是将应用接收到请求转发到对应控制器去处理。...当然,你也可以在路由模板中间设定固定值。 四、ASP.NET Core MVC 路由约束 1、路由约束介绍 路由约束主要是用于约束路由参数,在URL格式满足路有模板要求之后,进行参数检查。...Core MVC 绑定式路由配置 1、路由配置风格 集中式配置 前面章节提到路由配置都是在Startup类中进行集中式路由配置,集中配置路由,除了template中没有配置{controller

1.1K30

asp.net core权限模块快速构建

大部分系统都会有权限模块,别人家系统权限怎么生成我不知道,我只知道这样做是可以并且挺好。...文章中只对asp.net core部分代码进行说明 呃 记录~,mvc版本自行前往仓库查阅 代码中一些特性标记后面列出,或前往仓库查看~ 1.根据特性标记生成模块权限 先上效果图,感兴趣前往...Demo仓库地址,不感兴趣关闭页面吧~ ?...修改: 之前脑袋没有转过弯来,要使过滤器上下文Filters中发现自定义过滤器需要继承 Attribute, IFilterMetadata /// /// 管理员默认权限...特性标记替换为Attribute, IFilterMetadata ,果然可以~ 故得出:实现了IFilterMetadata特性标记能够在过滤器上下文中获取到。

1.8K10

使用ASP.NET Core 3.x 构建 RESTful API - 3.2 路由和HTTP方法

ASP.NET Core 3.x 路由 路由机制会把一个请求URI映射到一个Controller上面的Action,所以当你发送一个HTTP请求时候,MVC框架会解析这个请求URI,并尝试着把它映射到一个...两个路由中间件 在ASP.NET Core 3.x里面,建议使用Endpoint路由来进行设置。但是我们需要先在请求管道里面添加两个中间件: app.UseRouting()。...它是用来标记路由决策在请求管道里发生位置,也就是在这里会选择端点。 app.UseEndpoints()。它是用来标记选择好端点在请求管道什么地方来执行。...一个非常好例子就是授权中间件: ? 如果授权成功,那么就继续执行到之前选定端点,否则的话就会跳转到其它端点或者短路返回。 官方文档:Startup里面路由配置官方文档。...基于约定路由,例如这两种: ? 这种方式更适合于服务器端Web应用程序。 而针对Web API,使用基于属性路由更加适合: ?

1.2K10

自动构建自己ASP.NET Core基础镜像

在开发过程中,我们可以根据自身情况来定制自己基础镜像,以便加快CI\CD构建速度以及提高开发体验。这里我们就以ASP.NET Core基础镜像为例来进行讲解。...使用Azure Pipeline构建和推送腾讯云镜像 Azure Pipeline是免费,对于开源项目,构建没有限制。...使用Docker Hub构建镜像 Docker hub则使用其自带构建服务,使用起来就更为简单了: 创建仓储 ? 设置构建规则 ? 规则支持正则表达式。...镜像标签说明 如上面所示,我们设置了根据代码分支来构建镜像标签,相关说明如下: 标签名称 说明 latest 最新镜像,当前为3.1 2.2 Asp.Net Core Runtime 2.2 3.0...Asp.Net Core Runtime 3.0 3.1 Asp.Net Core Runtime 3.1 公共镜像地址 通过上面的自动构建,我们提供了腾讯云公共镜像和DockerHub公共镜像地址:

1.1K20

ASP.NET Core MVC中构建Web API

ASP.NET CORE MVC中,Web API是其中一个功能子集,可以直接使用MVC特性及路由等功能。...在成功构建 ASP.NET CORE MVC项目之后,选中解决方案,先填加一个API文件夹,填加后,选中API文件夹, ?...选择新建项,选择填加Web API控制器,要注意控制器在命名时,是以Controller结尾,这个不能改,前面的随意,比如,此处以NoteController.cs为例 ?...填加后,打开NoteController.cs,系统已经帮我们构建好了一些基础功能,我们需要在其基础上进行一些个性化修改使其成为我们自己代码。...pageindex=2  表示获取第二页信息。 讲得不详细地方,欢迎在博客下方留言或者访问我个人网站52dotnet.top与我联系。

79230

ASP.NET Core 基础知识】--路由和请求处理--Attribute路由

一、介绍 在ASP.NET Core中,路由是将传入URL请求映射到正确控制器和操作方法。...基本概念: **路由:**在ASP.NET Core中,路由是将URL请求映射到正确控制器和操作过程。...可读性更好:属性路由路由规则定义在代码中集中起来,可读性更好。 可维护性更高:属性路由路由规则定义更加集中和清晰,易于维护和管理。...如果应用程序路由规则比较简单,且性能要求较高,可以选择传统路由;如果应用程序路由规则比较复杂,且需要更高可读性和可维护性,可以选择属性路由。...这使得我们能够构建复杂而强大 Web 应用程序,同时也提高了代码可读性和可维护性。通过合理地使用 Attribute 路由,我们可以提升 Web 应用程序性能和用户体验。

8800

ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler)

本文通过一张图来看一下路由配置以及请求处理机制。...(ASP.NET Core 系列目录) 一、概述 路由主要有两个主要功能: 将请求URL与已定义路由进行匹配,找到该URL对应处理程序并传入该请求进行处理。...根据已定义路由生成URL 这两个功能看起来这两个是相反。 A.路由配置 路由两个功能都离不开一个基本操作:路由基本配置。...B.Handler选择 当请求进入之后,根据此路由表对该URL进行逐一匹配,并将请求交给匹配到路由target(即MvcRouteHandler或RouteHandler),调用 _target.RouteAsync...,现在发现2.2版本之后,启用了新路由方案,还是把这章完成了发出来,有愿意看可以参考一下,下一篇文章介绍一下2.2版路由方案,至于通过路由生成URL部分,就暂时不写了。

42930
领券