ASP.NET WEB API控制器方法路由路径合并异常问题咨询
问题原因及解决办法
问题出在你HttpGet特性里的路由模板开头的斜杠/。
在ASP.NET Core中,当路由模板以/开头时,会被当作绝对路由,完全忽略控制器类上定义的[Route("api/[controller]")]前缀,所以最终路由直接变成了/user/{userId:guid},而不是和控制器前缀拼接后的路径。
解决方法很简单,把HttpGet里的开头斜杠去掉即可:
[HttpGet("user/{userId:guid}")] public async Task<ActionResult<ApiResponse<IEnumerable<Appointment>>>> GetUserAppointments([FromRoute] Guid userId) {}
修改后,路由会自动和控制器的api/[controller]前缀拼接,最终生成你期望的/api/appointment/user/{userId:guid},Swagger UI里也会显示正确的路由。
内容的提问来源于stack exchange,提问作者user19297279
相关产品推荐
相关产品推荐

