为什么 Swagger 会检测到必需的 * 路径参数 {namespace}?

Why is a Required * path parameter {namespace} getting detected by Swagger?

我的 .Net MVC 项目有以下 ApiController:

但是 Swagger UI 生成两个方法:

观察ActionName TestMethod1被省略了(可能是因为这个控制器只有一个HttpGet)

这是因为 DefaultRoute 在路径中没有 {action}。

 routes.MapRoute(
                name: "Default",
                url: "{controller}/{id}",
                defaults: new { controller = "Addon", action = "Index", id = UrlParameter.Optional }
            );

应该是这样的:

 routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Addon", action = "Index", id = UrlParameter.Optional }
            );