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

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

ASP.NET Core应用中的路由机制实现在RouterMiddleware中间件中,它的目的在于通过路由解析为请求找到一个匹配的处理器,同时将请求携带的数据以路由参数的形式解析出来供后续请求处理流程使用...,并在成功匹配的情况下解析出路由参数并指定请求处理器之外,Router的路由解析还为另一个领用场景服务,那就是根据自身的路由规则和提供的参数生成一个URL。...二、RouteContext 接下来我们来了解一下整个路由解析涉及到了几个核心类型,首先来看看为整个路由解析提供执行上下文的这个RouteContext类型。...如上图所示,一个RouteContext上下文包含三个核心对象,一个是代表当前请求上下文的HttpContext对象,对应的属性是HttpContext。...至于另一个属性Routers,则保存着实施路由解析并提供路由参数的所有Router对象。

1.3K10

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

ASP.NET Core应用中的路由机制实现在RouterMiddleware中间件中,它的目的在于通过路由解析为请求找到一个匹配的处理器,同时将请求携带的数据以路由参数的形式解析出来供后续请求处理流程使用...[本文已经同步到《ASP.NET Core框架揭秘》之中] 目录 一、IRouter接口 二、RouteContext 三、RouteData 四、Route 五、RouteHandler 总结 一...,并在成功匹配的情况下解析出路由参数并指定请求处理器之外,Router的路由解析还为另一个领用场景服务,那就是根据自身的路由规则和提供的参数生成一个URL。...二、RouteContext 接下来我们来了解一下整个路由解析涉及到了几个核心类型,首先来看看为整个路由解析提供执行上下文的这个RouteContext类型。...如上图所示,一个RouteContext上下文包含三个核心对象,一个是代表当前请求上下文的HttpContext对象,对应的属性是HttpContext。

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

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

虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分(定义在程序集System.Web.Http.dll中)已经移除了对...也就是说,ASP.NET Web API核心框架的URL路由系统与ASP.NET本身的路由系统是相对独立的。...ASP.NET路由系统通过RouteData对象来封装解析出来的路由数据,其核心自然是通过Values和DataTokens属性封装的路由变量。...另一个同样通过字典类型表示的只读属性DataTokens,我们应该不会感到陌生,至于通过制度属性Handler返回的HttpMessageHandler对象是组成ASP.NET Web API消息处理管道的核心...Web API管道的HttpConfiguration对象,这依赖于我们对Web API的寄宿方式,这并没有定义在ASP.NET Web API的核心框架之中。

9.5K110

ASP.NET 路由

ASP.NET 路由使您可以使用不必映射到网站中特定文件的 URL。由于 URL 不必映射到文件,所以可以在 Web 应用程序中使用 URL,这些 URL 是描述性的用户操作,因此更易于被用户理解。...在一个不使用路由ASP.NET 应用程序中,对 URL 的传入请求通常映射到磁盘上的物理文件,如 .aspx 文件。...在 ASP.NET 路由中,您可以定义 URL 模式,该模式包含在处理 URL 请求时使用的值的占位符。在运行时,应用程序名称后面的 URL 部分根据您所定义的 URL 模式分析为离散值。...ASP.NET 路由不同于其他 URL 重写方案。URL 重写通过在将请求发送到网页之前实际更改 URL 来处理传入请求。此外,URL 重写通常没有相应的 API 来创建基于模式的 URL。...由于 ASP.NET 路由可以从 URL 提取值,所以处理传入请求时不更改 URL。如果必须创建一个 URL,则将参数值传递到为您生成 URL 的方法中。

2.3K81

ASP.NET Core 入门教程 3ASP.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路由的作用就是将应用接收到请求转发到对应的控制器去处理。...age=20 3、固定前后缀的路由 固定前缀路由配置: routes.MapRoute( name: "TutorialPrefixRoute", template: "jiaocheng..., defaults: new { controller = "Tutorial", action = "Welcome", name = "ken" } ); 3、参数范围约束 路由配置:约束

1.5K30

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

路由注册的核心就是在全局路由表中添加一个Route对象,该对象的绝大部分属性都可以通过MapPageRoute方法的相关参数来指定。接下来我们通过实现演示的方式来说明路由注册的一些细节问题。...ASP.NET路由系统的应用编程接口中定义了如下一个实现了IRouteConstraint接口的HttpMethodConstraint类型。...三、对现有文件的路由 在成功注册路由的情况下,如果我们按照传统的方式访问一个物理文件(比如.asxp、.css或者.js等),在请求地址满足某个路由的URL模板模式的情况下,ASP.NET是否还是正常实施路由呢...从界面上的输出结果我们不难看出,虽然请求地址完全满足我们注册路由对象的URL模板模式,但是ASP.NET并没有对请求地址实施路由。...的路由系统:URL与物理文件的分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

2.3K90

ASP.NET Core 入门教程 3ASP.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路由的作用就是将应用接收到请求转发到对应的控制器去处理。...age=20 3、固定前后缀的路由 固定前缀路由配置: routes.MapRoute( name: "TutorialPrefixRoute", template: "jiaocheng..., defaults: new { controller = "Tutorial", action = "Welcome", name = "ken" } ); 3、参数范围约束 路由配置:约束

1.1K30

Asp.Net WebApi核心对象解析(一)

(3).System.AspNet.WebApi.Core:包含核心WebApi编程模型和运行时组件。      ...二.WebApi路由机制的简要概述:     对于ASP.NET Web API路由的介绍会比较简单,因为对于熟悉asp.net mvc的人来说不是什么难事,而且本次博文的重点并不是在这里,所以在这里只会做一个简单的介绍...(3).在路由模板其他占位符变量,诸如{ID},被映射到动作的参数。    对于ASP.NET Web API的路由机制就讲解这么多,更多的内容大家可以自己去了解。...ApiController是ValuesController类的父类,是整个ASP.NET Web API的核心类,继承该类可以用来创建ASP.NET Web API控制器。...(3).运行各种筛选器,这些筛选器可以是为操作方法或控制器配置,也可以是全局的。   (4).为控制器类的操作方法提供适当的上下文状态。

4.4K70

ASP.NET MVC 路由详解

事隔多年,其实也就一年啦,重新整理下ASP.NET MVC的相关知识。继续前面的内容,来说说路由。 Route ?...这是项目中App_Star/RouteConfig.cs 中的默认路由信息,上面有几个关键词: 路由规则Route:需指定路由的格式,默认值,处理器 路由数据RouteData:当前请求上下文匹配路由规则而到的对象...Collection,一个MVC项目中,可以配置多个路由规则,按照键值对的格式存储到路由集合中 路由表RouteTable:类中包含静态的RouteCollection属性,完成所有路由规则的全局存储...其中{controller}和{action}不能修改 defaults 默认值 路由规则 重点说下路由规则,路由规则中{controller}和{action}不能修改,因为这是MVC的默认字段。...拓展 使用 RouteDebug 进行路由调试 总结 路由规则可以注册多条 路由规则的名称不能重复 路由规则有顺序,并且按照顺序进行匹配 子频道的路由规则配置应放在靠前 路由规则可以设置约束 路由规则匹配的控制器可以设置命名空间约束

1.5K20

Angular核心-路由和导航

Angular核心-路由和导航 博客首页:蔚说的博客 欢迎关注点赞收藏⭐️留言 作者水平很有限,如果发现错误,求告知,多谢! 有问题可私信交流!!!...(达内教育学习笔记)仅供学习交流 @[TOC]Angular核心-路由和导航) 多页面应用 :一个项目有多个完整的HTML文件,使用超链接跳转–摧毁一颗DOM树,同步请求另一颗,得到之后再重建新的DOM...”—[{URL-组件}],[{URL-组件}] //app.midule.ts 为每个路由组件分配一个路由地址 //声明路由词典-路由地址和路由组件的对应集合 let routes = [ {path...:'full'}, //重定向需要指定“路由地址匹配方式”为“完全匹配” 路由词典中可以指定一个匹配任一地址的地址:“**”,注意该地址只能用于整个路由词典的最后一个,在前边就会使后边的地址没有作用。...,canActivate:[LoginGuard]} 实例: 声明路由词典-路由地址和路由组件的对应集合 //声明路由词典-路由地址和路由组件的对应集合 let routes = [ {path:

2.2K20

asp.net core之路由

ASP.NET Core 中,路由是一个非常重要的概念,它决定了如何将传入的请求映射到相应的处理程序。...本文将详细介绍 ASP.NET Core 中的路由系统,包括路由的基本原理、路由模板、路由参数、路由约束等内容,并提供相应的代码示例。...UseRouting 和UseEndpoints 在asp.net core5之前的默认模板项目里面,我们都能看到UseRouting和UseEndpoints这两个中间件。用于配置路由。...路由基本原理 在 ASP.NET Core 中,路由系统负责将传入的 URL 请求映射到相应的处理程序。它通过匹配传入的 URL 和预定义的路由模板来确定请求应该由哪个处理程序处理。...options.ConstraintMap.Add("noZeroes", typeof(NoZeroesRouteConstraint))); 尝试请求id为0时: 请求不为0时候: ASP.NET

19710

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.3K60

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

前面我们已经提到过,ASP.NET路由系统主要具有两个方面的应用,其一就是通过注册URL模板与物理文件路径的匹配实现请求地址和物理地址的分离;另一个则是通过注册的路由规测生成一个相应的URL。...如果在调用GetVirtualPath确定了具体使用的路由对象,则直接调用该路由对象的GetVirtualPath方法并返回其执行结果。...路由对象针对GetVirtualPath方法而进行的路由匹配只要求URL模板中定义的变量的值都能被提供,而这些变量值具有三种来源,分别是路由对象定义的默认变量值、指定RequestContext的RouteData...在浏览器上访问Weather.aspx页面会得到如下图所示的3个URL。这充分证实了上面提到的关于变量选择优先级的结论。 ?...ASP.NET路由系统:URL与物理文件的分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

1.3K80

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

Endpoint: Custom Display Name 3. Endpoint: Custom Display Name 当访问其他不匹配的URL时,输出为: 1....它是根据以下规则来确定的: 越具体的模板优先级越高 包含更多匹配段的模板更具体 含有文本的段比参数段更具体 具有约束的参数段比没有约束的参数段更具体 复杂段和具有约束的段同样具体 catch-all参数段是最不具体的 核心源码解析...ASP.NET Core默认使用的 matcher 类型是DfaMatcher,DFA(Deterministic Finite Automaton)是一种被称为“确定有限状态自动机”的算法,可以从候选终结点列表中查找到匹配度最高的那个终结点...InvalidOperationException(message); } } } EndpointMiddleware EndpointMiddleware中间件中包含了很多异常处理和日志记录代码,为了方便查看核心逻辑...,如果你想要进行更加深入透彻的了解,推荐阅读蒋金楠老师的ASP.NET Core 3框架揭秘的路由部分。

1.7K40
领券