我有两个 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/