You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6 Web API如何在端点内部获取自身路由模板?

在.NET 6 Web API中获取端点的路由模板

当然可以直接获取到定义的路由模板,你之前尝试的两种方法都是拿到解析后的路由值或者实际请求路径,自然得不到原始模板。

正确的做法是通过HttpContext获取当前端点的元数据,从中提取RouteAttribute的模板:

// 在你的控制器方法内部
var endpoint = HttpContext.GetEndpoint();
var routeAttribute = endpoint?.Metadata.GetMetadata<RouteAttribute>();
var routeTemplate = routeAttribute?.Template ?? string.Empty;
// 此时routeTemplate的值就是你定义的"~/api/controller/action/{parameter}"

补充说明

  • 如果你的端点是用[HttpGet("template")]这种直接在Http方法特性里定义的路由,需要提取HttpGetAttribute的Template属性,逻辑类似:
    var httpGetAttribute = endpoint?.Metadata.GetMetadata<HttpGetAttribute>();
    var httpGetTemplate = httpGetAttribute?.Template ?? string.Empty;
    
  • 记得做空值判断,避免在端点未正确匹配时出现空引用异常。

内容的提问来源于stack exchange,提问作者penguin178

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:45:05