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

ASP.NET路由系统:路由映射

三、对现有文件路由 在成功注册路由情况下,如果我们按照传统方式访问一个物理文件(比如.asxp、.css或者.js等),在请求地址满足某个路由URL模板模式情况下,ASP.NET是否还是正常实施路由呢...从界面上输出结果我们不难看出,虽然请求地址完全满足我们注册路由对象URL模板模式,但是ASP.NET并没有对请求地址实施路由。...四、注册路由忽略地址 如果将代表全局路由RouteTable静态属性RoutesRouteExistingFiles属性设置为True,意味着ASP.NET针对所有抵达请求都一视同仁,都按照注册路由表进行注册...如果我们需要添加一个继承自RouteBase自定义路由对象,我们不得不采用手工添加方式。...路由系统:URL与物理文件分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

2.2K90

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

当我们在一个ASP.NET Core应用中使用路由功能时候,除了需要注册这个RouterMiddleware中间件之外,一般还需要调用ServiceCollection扩展方法AddRouting注册一些与路由相关服务...三、自定义约束 我们可以使用上述这些预定义RouteConstraint类们完成一些常用约束检验,但是在一些对路由变量具有特殊约束应用场景中,我们不得不创建自定义约束。...另一个路由参数{lang}表示指定语言,约束表达式名称“culture”对应就是我们自定义针对语言文件约束类型CultureConstraint。...---- 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路由路由系统核心对象——Router

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

1.2K10

ASP.NET路由系统:根据路由规则生成URL

前面我们已经提到过,ASP.NET 路由系统主要具有两个方面的应用,其一就是通过注册URL模板与物理文件路径匹配实现请求地址和物理地址分离;另一个则是通过注册路由规测生成一个相应URL。...,会遍历整个集合每个路由对象并调用其GetVirtualPath方法,如果返回VirtualPathData不会Null则直接将其作为返回值;否则(找不到匹配路由对象)返回Null。...如果在调用GetVirtualPath确定了具体使用路由对象,则直接调用该路由对象GetVirtualPath方法并返回其执行结果。...路由对象针对GetVirtualPath方法而进行路由匹配只要求URL模板中定义变量值都能被提供,而这些变量值具有三种来源,分别是路由对象定义默认变量值、指定RequestContextRouteData...ASP.NET路由系统:URL与物理文件分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

1.3K80

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

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

1.8K40

ASP.NET Web API路由系统:Web Host下URL路由

ASP.NET Web API提供了一个独立于执行环境抽象化HTTP请求处理管道,而ASP.NET Web API自身路由系统也不依赖于ASP.NET路由系统,所以它可以采用不同寄宿方式运行于不同应用程序中...如果采用Web Host方式将定义Web API寄宿于一个Web应用之中,其实最终URL路由还是通过ASP.NET本身路由系统完成,那么两个路由系统之间是如何衔接在一起呢?。...实现在HostedHttpRoute之中核心路由功能基本上是通过这个Route对象完成,所以我们才说Web Host下ASP.NET Web APIURL路由最终还是利用ASP.NET自身路由系统实现...Web API路由系统在Web Host情况下是如何利用ASP.NET自身路有系统实现URL路由ASP.NET Web API路由系统中HostedHttpRoute对象通过创建ASP.NET...Web API在Web Host模式下依然是借助ASP.NET自身路由系统实现URL路由,那么意味着当我们针对ASP.NET Web API进行路由映射时候必须在ASP.NET路由系统全局路由表中添加对一个继承自抽象类

1.6K100

ASP.NET Web API路由系统:路由系统几个核心类型

也就是说,ASP.NET Web API核心框架URL路由系统与ASP.NET本身路由系统是相对独立。...ASP.NET本身路由系统,Web Host实际上在这种情况下起到了一个“适配”作用,是两个相对独立路由系统“适配器”。...ASP.NET路由系统通过枚举RouteDirection表示这两种“路由方向”,而ASP.NET Web API路由系统中路由方向”则通过具有如下定义HttpRouteDirection枚举来表示...七、注册路由映射 与ASP.NET路由系统下路由映射类似,ASP.NET Web API下路由映射就是为针对应用路由表添加相应HttpRoute对象过程。...这是一个虚方法,所以如何我们希望调用这些扩展方法注册自定义HttpRoute,可以自定义一个HttpRouteCollection类型并重写这个CreateRoute方法即可。

9.5K110

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

那么,这篇文章就来介绍下,如何调整我们 ASP.NET Core 项目的路由规则,从而使我们项目的 URL 地址可读性更高。   ...因此,为了便捷输入,首先我们需要将我们 URL 地址转换成小写形式,在 ASP.NET Core 中,微软提供了 RoutingServiceCollectionExtensions.AddRouting...在 ASP.NET Core 中,我们可以通过在 Controller 或是 Action 方法上添加 RouteAttribute 方式将用户自定义路由信息添加到项目的路由表中。...在 ASP.NET Core 2.2 版本中,微软为我们提供了参数转换器这一概念,我们可以通过实现 IOutboundParameterTransformer 这个接口,从而将 URL 中路由值或者是...三、总结    在本章中,我们主要是调整了 ASP.NET Core 项目中默认路由,从而使项目的 URL 地址具有更好可读性。

63110

ASP.NET路由系统实现原理:HttpHandler动态映射

我们可以通过HttpHandler动态映射来实现请求地址与物理文件路径之间分离。实际上ASP.NET路由系统就是采用了这样实现原理。...如下图所示,ASP.NET路由系统通过一个注册到当前应用自定义HttpModule对所有的请求进行拦截,并通过对请求分析为之动态匹配一个用于处理它HttpHandler。...MvcRouteHandler 三、ASP.NET路由系统扩展         实例演示:通过自定义Route对ASP.NET路由系统进行扩展 上图所示作为请求拦截器HttpModule...路由系统扩展 到此为止我们已经对ASP.NET路由系统实现进行了详细介绍,总的来说,整个路由系统是通过对HttpHandler动态注册方式来实现。...实例演示:通过自定义Route对ASP.NET路由系统进行扩展 定义在ASP.NET路由系统中默认路由类型Route建立了定义成文本模板URL模式与某个物理文件之间映射,如果我们对WCF REST

1.6K60

ASP.NET路由系统:URL与物理文件分离

表现为请求地址与目标Controller和Action动态映射URL路由系统并不是专属于ASP.NET MVC,而是直接建立在ASP.NET 中。...ASP.NET通过URL路由系统实现了请求地址与物理文件分离。...而URL路由系统则是ASP.NET一部分,是通过托管代码实现。为了让读者对ASP.NETURL路由具有一个感官认识,我们来演示一个简单实例。...二、 实例演示:通过URL路由实现请求地址与.aspx页面的映射 接下来我们将创建一个简单ASP.NET Web Forms应用,并采用一个独立于.aspx文件路径URL来访问对应Web页面,而两者之间映射通过...路由系统:URL与物理文件分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

1.2K80

ASP.NET Core端点路由中三种让人困惑路由函数

早先提及了端点路由app.UseEndpoints, 端点路由强调是端点和路由,其核心目的是将请求落地点与路由寻址方式解耦。...如今约定路由并不是主流,因为所谓约定路由对于用户浏览并不友好,而且暴露了后端开发者定义琐碎Controller、Action名称。...实际上,不应该让用户url去匹配开发者定义Controller-Action名称(太丑陋行为),而应该让开发者去匹配用户想要使用url, 这样特性路由出现了。 2....不对约定路由做任何假设,也就是不使用约定路由,依赖用户特性路由, 一般用在WebAPI项目中。 ---- 全文梳理就会发现: 官方英文描述屡次出现route,其实特指的是约定路由。...这样描述我其实是不苟同路由在.NET里面, 已经被普世认定为“约定路由”和“特性路由”,基于这种认知,我读了好几遍官方英文描述,其实没读出个所以然

34730

ASP.NET Core路由:来认识一下实现路由RouterMiddleware中间件

虽然ASP.NET Core应用路由是通过RouterMiddleware这个中间件来完成,但是具体路由解析功能都落在指定Router对象上,不过我们依然有必要以代码实现角度来介绍一下这个中间件...[本文已经同步到《ASP.NET Core框架揭秘》之中] 让RouterMiddleware中间件委托Router完整整个路由工作之后,解析出来路由参数会以一个RouteData对象形式存储在RouteContext...但是RouteContext是为Router执行建立上下文,路由解析工作完成之后,这个上下文生命周期也随着结束,既然整个RouteContext上下文都不存在了,请求处理后续步骤如何获取这个RouteData...如果在路由解析结束之后通过RouteContextHandler属性返回请求处理存在,意味着当前请求与注册路由匹配,在此情况下它会将当前请求交给这个处理器做后续处理。...GetRouteData得到封装了路由参数RouteData对象之前,我们还可以调用另一个名为GetRouteValue发扩展方法直接获取某个路由参数值。

64250

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

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

56420
领券