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

如何在asp.net核心中获取任意url的路由值?

在ASP.NET Core中,可以通过以下步骤获取任意URL的路由值:

  1. 首先,确保你的ASP.NET Core应用程序已经配置了路由。在Startup.cs文件的Configure方法中,使用app.UseRouting()启用路由中间件,并在ConfigureServices方法中使用services.AddControllers()或services.AddMvc()添加控制器。
  2. 在你的控制器或视图中,可以通过注入HttpContextAccessor来访问HttpContext对象。在构造函数中添加以下代码:
代码语言:csharp
复制
private readonly IHttpContextAccessor _httpContextAccessor;

public YourController(IHttpContextAccessor httpContextAccessor)
{
    _httpContextAccessor = httpContextAccessor;
}
  1. 然后,你可以使用_httpContextAccessor.HttpContext.Request来获取当前请求的HttpContext对象。通过HttpContext对象,可以获取到当前请求的路由值。
代码语言:csharp
复制
var routeValues = _httpContextAccessor.HttpContext.Request.RouteValues;
  1. routeValues是一个RouteValueDictionary对象,它包含了当前请求的路由值。你可以通过键值对的方式访问特定的路由值。
代码语言:csharp
复制
var id = routeValues["id"];

这样,你就可以在ASP.NET Core中获取任意URL的路由值了。

对于ASP.NET Core的更多信息和示例,请参考腾讯云的ASP.NET Core产品文档:ASP.NET Core

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET Core基础补充04

ASP.NET Core (MiddleWare) 什么是ASP.NET心中间件组件?...ASP.NET心中间件组件是被组装到应用程序管道中以处理HTTP请求和响应软件组件(从技术上来说,组件只是C#类)。 ASP.NET Core应用程序中每个中间件组件都执行以下任务。...ASP.NET Core中间件组件执行顺序与添加到管道中顺序相同。 因此,在将中间件组件添加到请求处理管道时,我们需要小心。 根据应用程序业务需求,您可以添加任意数量中间件组件。...UseRouting 该中间件组件用于将端点路由中间件添加到请求处理管道,即它将URL(或传入HTTP请求)映射到特定资源。...UseEndpoints 在此中间件中,将使用Map扩展方法来做出路由决策。 以下是UseEndpoints中间件组件默认实现。 在MapGet扩展方法中,我们指定了URL模式,例如“ /”。

15010

使用 ASP.NET Web API 构建超媒体 Web API

当然,链接在诸如浏览器用户界面上下文中很常见;例如,考虑采用“参见详细信息”链接来获取目录中指定产品详细信息。但是没有用户界面或用户交互计算机到计算机情形怎么办呢?...中公开一个服务文档,该文档包含所有支持资源集和用于获取与其关联数据链接。...现在我们来了解一下如何在使用 ASP.NET Web API 生产环境中实际实施这些原理,并使用此框架提供所有可扩展性和功能。 在内核级别,ASP.NET Web API 支持格式化程序概念。...利用具有新模型绑定程序或提供程序模型绑定基础结构通常可以解决此问题。幸运是,这种不一致性在 ASP.NET Web API 中已通过引入格式化程序得到解决。...Link 方法接收两个变量: 路由名称和要构成 URL 。 图 9 显示对于以前产品目录示例,如何在 Get 方法中使用 UrlHelper 类。

2.8K50

Asp.net MVC 之 Contorllers(二)

[译]Asp.net MVC 之 Contorllers(一) URL 路由HTTP模块通过获取 URL,然后调用合适执行方法处理进来请求。...只需要简单三个步骤(相当于把大象装冰箱): 获取到 Query String 中参数 ID (打开冰箱门)。 运行一个查询语句获取结果(把大象放进去)。 创建一个展示界面(关上冰箱门)。...可以使用 ASP.NET MVC 应用程序中 REST 方式,ASP.NET MVC 面向他是松耦合ASP.NET MVC 承认他概念,资源和行为,我们可以随意使用自己语法来表达和实现资源和行动行为...乍一看,这个URL不会被路由匹配。但是,如果URL参数有默认,那么默认值得部分被认为是可选。...,路由对象本身、URL参数以及约束。

1.9K60

ASP.Net MVC开发基础学习笔记:一、走向MVC模式

M:Model 主要是存储或者是处理数据组件;Model其实是实现业务逻辑层对实体类相应数据库操作,:CRUD。它包括数据、验证规则、数据访问和业务逻辑等应用程序信息。...(4)ViewBag传递数据:我们对ViewBag动态属性进行赋值,实际上是存到了ViewData中,动态属性名存成了ViewDataDictionary键,动态属性存成了ViewDataDictionary...。...所以,所有的请求都是要指定一个具体Action,Url格式是根据路由规则来定。那么,在ASP.Net MVC路由规则默认又是什么,在哪里设置呢?...如果我们想要改变默认路由规则,例如我们想要以这种URL:http://localhost/Home-Index-1来访问项目,则直接将上面的默认路由规则改为:{controller}-{action}

2K30

ASP.NET Core 6框架揭秘实例演示:利用路由开发REST API

) [S2008]将终结点处理定义为任意类型委托(源代码) [S2009]IResult 应用(源代码) [S2001]注册路由终结点 我们演示这个ASP.NET应用是一个简易版天气预报站点...并非每个路由参数都必须有请求URL对应部分来指定,如果赋予路由参数一个默认,那么它在请求URL中就是可以缺省。对上面演示实例来说,我们可以采用如下方式在路由参数名后面添加一个问号(“?”)...图3 不同URL针对默认路由参数等效性 [S2004]为路由参数指定默认 实际上可缺省路由参数默认设置还有一种更简单方式,那就是按照如下所示方式直接将默认定义在路由模板中。...以我们演示程序为例,我们需要设计一种路径模式来获取某个城市某一天天气信息,使用“/weather/010/2019.11.11”这样URL获取北京在2019年11月11日天气,对应模板为“/weather...{dd}”这样URL,我们就可以获取某个城市指定日期天气。如图4所示,我们采用请求路径“/weather/010/2019.11.11”可以获取北京在2019年11月11日天气。

72220

ASP.Net MVC开发基础学习笔记:一、走向MVC模式

M:Model 主要是存储或者是处理数据组件;Model其实是实现业务逻辑层对实体类相应数据库操作,:CRUD。它包括数据、验证规则、数据访问和业务逻辑等应用程序信息。...(4) ViewBag传递数据:我们对ViewBag动态属性进行赋值, 实际上是存到了ViewData中,动态属性名存成了ViewDataDictionary键,动态属性存成了ViewDataDictionary...。...所以,所有的请求都是要指定一个具体Action,Url格式是根据路由规则来定。那么,在ASP.Net MVC路由规则默认又是什么,在哪里设置呢?...如果我们想要改变默认路由规则,例如我们想要以这种URL:http://localhost/Home-Index-1来访问项目,则直接将上面的默认路由规则改为:{controller}-{action}

88120

ASP.NET MVC5请求管道和生命周期

在IIS7之前,IIS6或IIS5,请求处理管道分为两个:IIS请求处理管道和ASP.NET管道,若客户端请求静态资源则只有IIS管道进行处理,而ASP.NET管道不会处理该请求。...路由系统职责是从请求URL获取controller和action名称以及其它请求数据。...UrlRoutingModule根据当前请求URL和RouteTable中已注册路由模板进行匹配并返回第一个和当前请求相匹配路有对象Route,然后根据路有对象获取路由数据对象RouteData(...ASP.NET MVC中,路由数据必须包含controller和action名称),再有RouteData获取IRouteHandler最终有IRouteHandler得到IHttpHandler。...,对于不是ActionResult类型返回ASP.NET MVC会将其转换为ActionResult类型。

1.6K30

ASP.NET Core路由中间件: 终结点与URL映射

,那么即使请求URL不具有对应内容(“weather”和“weather/010”),它与路由规则也是匹配,但此时在路由参数字典中是找不到它们。...上面的程序相当于在进行请求处理时给予了默认路由参数一个默认,实际上,路由参数默认设置还有一种更简单方式,那就是按照如下所示方式直接将默认定义在路由模板中。...一个URL可以通过分隔符“/”划分为多个路径分段(Segment),路由模板中定义路由参数一般来说会占据某个独立分段(“weather/{city}/{days}”)。...同样以前面演示获取天气预报路径为例,假设设计一种路径模式来获取某个城市某一天天气信息,“/weather/010/2019.11.11”这样一个URL可以获取北京在2019年11月11日天气,...对于上面设计这个URL来说,我们采用“.”作为日期分隔符,如果采用“/”作为日期分隔符(2019/11/11),这个路由默认应该如何定义?

89631

微软发布ASP.NET Core 2.2,先睹为快。

我很高兴地宣布ASP.NET Core 2.2现在作为.NET Core 2.2一部分提供! 如何获取?...引入端点路由,在MVC中提高了20%路由性能 使用LinkGenerator类改进URL生成并支持 路由参数变换器 (以及来自Scott Hanselman帖子) 用于应用程序运行状况监视New...除了所有健康检查包之外,BeatPulse团队还结合了其他功能,脉冲跟踪(Application Insights和Prometheus),我们可以为故障通知和UI界面配置不同监控系统,并具有一个可以查看健康状态全局概览图表...如果在部署到Azure App Service后收到启动错误,请尝试通过将AspNetCoreModule属性设置为“AspNetCoreModule” 来配置项目以使用现有版本ANCM ,例如:...有关如何在Azure App Service中使用其他配置在64位进程中运行ASP.NET Core应用程序其他信息,请参阅此文章。

3.4K40

.NETASP.NET Routing路由(深入解析路由系统架构原理)

ASP.NET Routing 卡在中间,它让原本直接处理流程变有点扑簌迷离,它隔开了“ASP.NET基础框架 " 与 "基于ASP.NET应用框架 "(:ASP.NETMVC\ASP.NETWEBAPI...对象;其实就是我们在程序里面配置Url模板数据,当请求来时候我们需要去根据当前请求Url路由表去匹配是否有符合当前Url路由对象; routes.MapRoute(...,包括Url模板字符串,:api/order/102304,还有一些辅助性内容,这不是本节重点,我们只要知道它是用来做Url配置即可; Route对象不是直接被我们实例化,而是通过应用层扩展方法进行实例化...; 先基本介绍一下这几个对象意思和彼此之间关系: RouteValueDictionary:路由对象内部存放中间使用对象,比如Url模板默认,命名空间,地址栏传过来参数等等;当然也可以用来存放任何...Key-Value形式任何; RouteData:路由数据,用来包装根据路由Url匹配成功后路由数据封装,最重要是将IRouteHander接口传递到UrlRoutingModule中去;

1.5K90

ASP.NET MVC 5 - 控制器

本系列教程,我们将覆盖所有这些概念,并告诉您如何在ASP.NET MVC 5中使用它们来构建应用程序。 首先,让我们创建一个控制器类。...所使用ASP.NET MVC默认URL路由逻辑使用这样格式来判定哪些代码以便调用: /[Controller]/[ActionName]/[Parameters] 你也可在App_Start/RouteConfig.cs...改变您Welcome 方法来包含两个参数,如下所示。需要注意是,示例代码使用了C#语言可选参数功能,numTimes参数在不传时,默认为1。...你可以对参数name 和numtimes 尝试不同ASP.NET MVC model binding system 会自动将地址栏中URL query string映射到您方法中参数。...您还可以增加一条路由来传递name 和numtimes ,在路由数据在URL参数。

2.6K80

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

也就是说,ASP.NET Web API核心框架URL路由系统与ASP.NET本身路由系统是相对独立。...当ASP.NET Web API框架实施约束检验时候,已经通过URL模板匹配得到了所有的路由变量值,参数values表示字典对象存放了这些路由变量,其Key和Value分别代表路由变量名称和。...通过对ASP.NET 路由系统介绍我们知道URL路由具有两个“方向”上应用,分别是匹配“入栈”请求并得到相应路由数据,以及根据定义路由规则和提供路由变量生成“出栈”URL。...HttpRoute能够根据模板生成一个完整URL取决于是否能够提供定义在URL模板中所有路由变量占位符,而这个路由变量值具有如下三个来源。...,但是缺省路由变量具有不同之处:如果请求URL中没有提供对应变量,普通具有默认路由变量依然会出现在最终HttpRouteDataValues属性中,但是缺省路由变量则不会。

9.5K110

ASP.NET MVC Controller激活系统详解:总体设计

熟悉ASP.NET读者应该对SessionStateBehavior不会感到陌生,它用于表示请求处理过程中会话状态支持模式,它四个枚举分别具有如下含义: Default:使用默认 ASP.NET...现在我们对本例路由注册代码作了如下修改,为注册路由对象指定了两个命名空间(分别是两个HomeContrller所在命名空间),运行我们程序依然会得到第一张图所示错误。...[关于ASP.NET MVC路由,在我文章《ASP.NET MVC路由扩展:路由映射》中具有详细介绍] 在解析Controller真实类型过程中,会先通过RouteData包含命名空间来解析Controller...四、Controller激活与URL路由 ASP.NET路由系统是HTTP请求抵达服务端第一道屏障,它根据注册路由规则对拦截请求进行匹配并解析包含目标Controller和Action名称路由信息...通过《ASP.NET路由系统实现原理:HttpHandler动态映射》介绍我们知道ASP.NET路由系统核心是一个叫做UrlRoutingModule自定义HttpModule,路由实现是它通过注册代表当前

1.7K60

ASP.NET Core 2.2 正式版发布

怎么获取它 您可以从 .NET Core 2.2 下载页面下载适用于您开发机器和构建服务器新 .NET Core SDK(2.2.100)。...路由性能 使用LinkGenerator类改进URL生成并支持路由参数变换器(以及来自Scott Hanselman文章) 用于应用程序运行状况监视健康检查API IIS进程内托管支持,吞吐量提高了...400% 提高15%MVC模型验证性能 问题详细信息(RFC 7807)支持MVC以获取详细API错误结果 在ASP.NET Core中预览HTTP / 2服务器支持 Bootstrap 4和Angular...除了所有健康检查包之外,BeatPulse团队还结合了其他功能,Application Insights和Prometheus,故障通知和UI界面,我们可以配置不同受监控系统,并具有健康状态全局视图...有关如何在Azure App Service中使用其他配置在64位进程中运行ASP.NET Core应用程序其他信息,请参阅此文章。

2K20

ASP.NET MVC编程——路由

MapRoute有多个重载方法,所有的参数含义如下: 参数名称 参数类型 注释 name string 路由名称 url string Url模式 defaults object 默认路由对象 constraints...object 一组表达式,限定URL参数值 namespaces string[] 设置一组命名空间 参数解析 1)defaults设置默认路由对象, 2)constraints:通过正则表达式来设置约束条件...constraints:new {id=@"\d+"}限制id只能是数值类型 规则:从前到后逐段匹配,请求URL参数少于定义URL时,默认配置补全对应参数。...不允许有两个连续: 例如 不允许:{controller}{action}/{id} 合法:{language}-{current}/{controller}/{action}/{id} 多个路由选择问题...: public RouteAttribute(string template):template是路由匹配模式 Name:获取或设置路由名称 Order:获取或设置路由应用顺序 Template:获取路由匹配模式

1.7K120

使用DOT语言和GraphvizOnline来可视化你ASP.NETCore3.0终结点01

使用有向图来可视化ASP.NET Core终结点 ASP.NETCore中终结点路由系统通过创建端点URL有向图来有效地工作。然后将传入请求与图进行匹配(一次一个段),以确定要执行终结点。...在上面的DOT文件中,节点被赋予顺序整数名,1, 2, 3等,并使用端点名称进行标记。这是ASP.NET Core用于表示终结点图格式。 对于Razor页面,路由非常简单,所以图非常明显。...URL段与图中边进行增量匹配,并在图中遍历一条路径,直到整个请求URL匹配为止。 每个节点(由在ASP.NET Core中DfaNode中)有几个属性。...如果DfaNode有Literals,它具有可以进一步遍历以到达其他节点文字段。例如,/api/节点包含一个有/ValuesLiteral,则指向/api/Values节点。...PolicyEdges这些边缘是基于URL以外约束进行匹配。例如,图中基于动词边,HTTP: GET,是策略边缘,指的是不同DfaNode.

2.3K30

何在 ASP.NET MVC 中集成 AngularJS(2)

在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩、应用程序版本自动刷新和工程构建等内容。...下面介绍如何在 ASP.NET MVC 中集成 AngularJS 第二部分。...开始时候,我在 _Layout.cshtml 母版页顶部编写了一些服务器端代码。我所做头两件事情就是让从程序集信息类中获取应用序列号,从应用程序设置中获取检索基本 URL。...下面的示例应用程序路由表只需要分析出三条路线: 一个用于根路径'/' 一个标准路由路径,'/:section/:tree' 包含路由参数路由'/:section/:tree/:id' 我决定从...在这第二部分讲解中,作者解决了如何在 ASP.NET MVC 中集成 AngularJS 遇到大部分问题。

8.3K100

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。...定义 URL 模式称作“路由”。在路由中,您可以指定占位符,用于映射到从 URL 请求中分析。您还可以指定用于匹配 URL 请求常量值。

2.3K81
领券