.NET 8 Web服务无[Route]属性时的默认访问URL咨询
问题解答
正确访问URL
不带额外[Route]属性的GetWsVersionNumber方法,正确访问URL为:
api/WsVersionNumber
路由规则说明
你的控制器上已定义全局路由模板[Route("api/[controller]")],其中[controller]是路由令牌,会自动替换为控制器类名去掉Controller后缀的部分(即WsVersionNumber)。
当方法仅标记[HttpGet]而未添加[Route]时,该方法的路由直接继承控制器的基础路由,无需额外拼接方法名或其他路径。这是.NET Web API属性路由的默认规则:
- 控制器路由解析为:
api/WsVersionNumber - 仅用
[HttpGet]修饰的方法,其路由就是控制器基础路由本身,仅响应GET请求
验证要点
- 确认Program.cs中已配置
app.MapControllers(),该方法负责启用属性路由解析,这也是你带[Route]的方法能正常访问的核心配置,同样适用于当前无额外Route的方法。 - 确保请求方式为GET,使用POST等其他请求方式会返回404。
内容的提问来源于stack exchange,提问作者pdschuller
相关产品推荐
相关产品推荐

