gpt4 book ai didi

c# - 如何在给定 HttpRequestMessage 的情况下检索路由模板变量?

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:05 29 4
gpt4 key购买 nike

我有两个 API Controller ,位于两个不同的文件夹中,它们具有 GetEvents() 操作:

V1
EventsController

V2
EventsController

我希望能够使用以下方式访问 Controller :

 api/v1/events and api/v2/events

我的路线模板是这样的

api/v{version}/{controller}

私有(private)静态字符串 GetRequestVersion(HttpRequestMessage 请求) {

//如何从 url 中找到 {version} 值?

我使用 REGEX 编写了一段代码,它运行良好:

 private static string ExtractVersionFromUrl(HttpRequestMessage request)
{
Match match = Regex.Match(request.RequestUri.PathAndQuery, @"/v(?<version>\d+)/", RegexOptions.IgnoreCase);

return match.Success ? match.Groups["version"].Value : null;
}

从 uri 中检索此类数据的标准方法是什么?

最佳答案

尝试,

Request.GetRouteData().Values["version"];

GetRouteData 是一种扩展方法,在命名空间 System.Net.Http 中可用。

关于c# - 如何在给定 HttpRequestMessage 的情况下检索路由模板变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16420155/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com