C# ASP.NET Core如何匹配请求路径与含参数的路由模板
ASP.NET Core 路径与路由模板匹配方案
可以直接使用ASP.NET Core路由模块原生提供的TemplateMatcher类实现需求,无需手动拆分路径逐段比较,单行代码即可完成匹配校验,匹配规则和框架原生路由规则完全一致。
示例代码
// 引用命名空间:Microsoft.AspNetCore.Routing.Template bool isMatch = new TemplateMatcher(TemplateParser.Parse("/api/v1/schedules/{id}/comments"), new RouteValueDictionary()).TryMatch("/api/v1/schedules/S210715001/comments", out var routeValues);
结果说明
- 最终返回的
isMatch为true即代表两个路径匹配,自动忽略路径参数位置的内容差异 - 若需要提取路径参数的值,可以直接读取
routeValues字典,示例中routeValues["id"]的值就是S210715001 - 该工具类为框架内置组件,无需安装额外的第三方依赖包
内容的提问来源于stack exchange,提问作者Ravi Rajan
相关产品推荐
相关产品推荐

