首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

未通过属性路由找到子文件夹中的Web API控制器

是指在ASP.NET Core Web API项目中,使用属性路由时无法找到位于子文件夹中的控制器。

解决该问题的方法是使用约定路由或手动配置路由。以下是两种解决方案:

  1. 约定路由:
    • 在Startup.cs文件的ConfigureServices方法中,添加以下代码:services.AddControllers(options => { options.Conventions.Add(new RouteTokenTransformerConvention(new SlugifyParameterTransformer())); });
    • 创建一个名为SlugifyParameterTransformer的类,实现IOutboundParameterTransformer接口,用于将参数转换为URL友好的格式。例如:public class SlugifyParameterTransformer : IOutboundParameterTransformer { public string TransformOutbound(object value) { if (value == null) return null;
代码语言:txt
复制
         return Regex.Replace(value.ToString(), "([a-z])([A-Z])", "$1-$2").ToLower();
代码语言:txt
复制
     }
代码语言:txt
复制
 }
代码语言:txt
复制
 ```
  • 在子文件夹中的控制器类上添加Route属性,指定路由模板。例如:[Route("api/[controller]")] [ApiController] public class SubFolderController : ControllerBase { // Controller actions... }
  1. 手动配置路由:
    • 在Startup.cs文件的Configure方法中,添加以下代码:app.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapControllerRoute( name: "default", pattern: "api/{controller}/{action}/{id?}"); });
    • 在子文件夹中的控制器类上添加Route属性,指定路由模板。例如:[Route("api/SubFolder/[controller]")] [ApiController] public class SubFolderController : ControllerBase { // Controller actions... }

这样,无论使用约定路由还是手动配置路由,都可以解决未通过属性路由找到子文件夹中的Web API控制器的问题。

推荐的腾讯云相关产品:腾讯云云服务器(ECS)、腾讯云容器服务(TKE)、腾讯云云原生应用平台(TKE App)、腾讯云数据库(TencentDB)等。您可以通过访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券