首页
学习
活动
专区
工具
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/)了解更多关于这些产品的详细信息。

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

相关·内容

Asp.Net Web API 2第八课——Web API 2属性路由

Web API支持一种新路由类型,被叫做属性路由。顾名思义,属性路由是用属性来创建路由。在你Web API属性路由可以让你更好控制URI。你能容易创建描述资源阶层URIs。   ...2、启用属性路由   3、添加路由属性   4、路由前缀   5、路由约束   6、可选URI参数和默认值   7、路由名称   8、路由顺序 1、为什么使用属性路由   第一个Web API版本使用是基于公约路由...API版本控制  在下面的例子,"api/v1/products"相对于"api/v2/products"将被路由到不同控制器。...4、路由前缀 通常情况下,在同一个控制器所有路由以相同前缀开头。...在大多数情况下,除非在你管道中有自定义模型绑定,这两种表现是等价。 7、路由名称  在Web API,每个路由都有一个名称。路由名称被用于生成链接,你能在HTTP响应包含一个链接。

88240

Asp.Net Web API 2第五课——Web API路由

Routing Tables路由表   在Asp.Net Web API,一个控制器就是一个处理HTTP请求类,控制器public 方法被叫做action方法或者简单Aciton。...更多信息参阅“自托管Web API"。(暂实现)   路由每一个条目都包含一个路由模板。这个Web API默认路由模版是"api/{controller}/{id}"。...通过这种方式,可以用“/contacts”进入一个MVC控制器,而“/api/contacts”进入一个Web API控制器。当然,如果你不喜欢这种约定,你也可以修改这个默认路由表。  ...1.为了找到Controller,Web API会把“控制器”加到{controller}变量值。   ...(WebDAV更没见过) 通过Action名称路由 在默认路由模版,这个Web API使用HTTP方法去选择Action。

1.2K50
  • ASP.NET MVC编程——错误处理与日记

    ASP.NET MVC错误处理应考虑到这几个方面:模型绑定期间发生错误,未能路由到指定操作,针对控制器错误处理。...App_Start文件夹下FilterConfig.cs文件设置全局错误过滤器,过滤器会按照他们注册顺序执行。但可以通过Order属性指定执行顺序。...Server.ClearError(); //重定向 Response.Redirect("home/index"); } } 3.2捕获匹配路由...文件位于Views文件夹文件夹Shared文件夹下 浏览器输入:http://localhost/mvcpointapp/ 结果可以正常显示Error.cshtml页面,同时注意到虽然在customErrors...通过上述实践,充分证明HandleErrorAttribute会拦截控制器内抛出异常,而无法拦截无法找到资源这种异常。

    1.5K60

    如何在 ASP.NET MVC 中集成 AngularJS(1)

    之后,我选择了 MVC 工程并在应用中会用到 MVC Web API 添加文件夹和引用。下一步是选择工具菜单“管理 NuGet 包解决方案”,来下载并安装 NuGet AngularJS。...应用程序其余部分将包括 AngularJS 视图和控制器。 对于示例应用程序,我在视图文件夹下创建了两个额外文件夹,一个客户文件夹,一个产品文件夹。...所有的客户 Angular 视图和控件器将驻留在客户文件夹,所有的产品 Angular 视图和控件器将驻留在产品文件夹 。...使用“controller as”语法,你所有的连接到控制器(视图模式)属性必须以你视图别名作为前缀。在下面的视图代码片段,属性标题前面就加上了“VM”别名。 <!...MVC 路由配置,会将应用路由到 MVC Home 主控制器,并执行主控制器索引方法。

    7.6K60

    .net 温故知新【11】:Asp.Net Core WebAPI 入门使用及介绍

    然后下面还有三个配置,第一个是说是否使用控制器,如果使用接口服务放在Controllers文件夹下统一管理并且相关路由规则不一样。...如果同一控制器必须支持视图和 Web API,则派生自 Controller。...[ApiController] [ApiController] 属性可应用于控制器类,以启用下述 API 特定固定行为: 1)属性路由要求:不能通过由 UseEndpoints、UseMvc 或...2)绑定源参数推理:绑定源特性定义可找到操作参数值位置,接口参数通过推理规则应用于操作参数默认数据源。...也就是说路由属性配置了路由,如上图请求时路由https://localhost:7122/WeatherForecast,配置“[controller]”为标记替换,为方便起见,属性路由支持标记替换

    1.9K30

    Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)

    本文已同步到Web API2系列文章http://www.cnblogs.com/aehyok/p/3446289.html。   ...选择合适模版进行创建项目 并命名为OData,点击确认后,在下一个Asp.Net 项目对话框中选择 Empty空模版,并在以下对象添加文件夹和核心引用下:进行勾选Web  API。...在OData服务你为每个实体数据集定义一个独立控制器。在本教程我们将创建一个单一控制器。 在解决方案资源管理器,右键单击控制器文件夹。选择添加,然后选择控制器....然后将可以看到会在项目中添加两个文件: 添加EDM和Route 在解决方案资源管理器,打开App_Start文件夹,然后找到WebApiConfig.cs文件并打开。...如果你想更多来控制EDM,使用ODataModelBuilder类明确添加属性、键、导航属性来创建EDM。 这个EntitySet 方法就是将一个实体添加到EDM实体

    97331

    Node.js-具有示例API基于角色授权教程

    3.通过从项目根文件夹命令行运行npm start来启动api,您应该看到消息 Server listening on port 4000。...4通过从项目根文件夹命令行运行npm start来启动应用程序,这将启动显示Angular示例应用程序浏览器,并且应与已经运行基于Node.js基于角色授权API挂钩。...sub属性是subject缩写,是用于在令牌存储项目id标准JWT属性。 第二个中间件功能根据其角色检查经过身份验证用户是否有权访问请求路由。如果验证或授权失败,则返回401未经授权响应。...重要说明:api使用“"secret”属性来签名和验证用于身份验证JWT令牌,并使用您自己随机字符串对其进行更新,以确保没有其他人可以生成JWT来获得对应用程序授权访问。...入口点,它配置应用程序中间件,将控制器绑定到路由并启动apiExpress Web服务器。

    5.7K10

    ASP.NET Web API编程——路由

    DefaultHttpControllerSelector查找控制器(controller)算法为: 在路由词典查找键为“controller”值,找到键“controller”对应值后,将字符串...根据获得控制器(Controller)名查找Web API控制器(controller)。如果没有查找到控制器(controller)名或者匹配到了多个,那么返回错误。...l 在参数列表,从路由或请求URI查询字符串,为每一个参数名找到一个匹配,匹配是不区分大小写,并且不依赖于参数顺序。...可以将控制器(controller)类单独编制为一个dll,放在指定文件夹内,这样无需编译整个框架,就能修改控制器(controller)。...设置路由名称后,可以在使用控制器(controller)属性ApiController.Url或ApiController.Route拼接URL。

    1.8K80

    2018年9月26日Django安装以及创建第一个Django项目和子模块

    python字符串对象find()和index()方法区别? index()和find()函数都是用于查询字符串,但是index()在没有找到时候会有报错抛出异常,影响程序执行。...python web框架有: Django,flask,tornado,web.py……… 为什么Django应用最为广泛:        1、有完善ORM关系映射        2、有强大路由映射功能...模块:为了完成某一件事,或者某些事,而封装代码,提供了一些封装好方法和属性 框架:提供方法属性同时,也提供处理事务业务逻辑,扩展了代码 cms(content manager system)内容管理系统...路由注册到跟模块urls文件,要先从django引入include, 然后在一级路由中配置一个二级路由 在自定义模块完成urls和views映射 第一个django项目创建成功后,项目结构如下...模板层 原本控制器中分发请求功能,交给了路由 原本控制器接受参数功能,交给了视图 一级访问目录后边不要加$符号 get方式请求时候一般都会在最后一级访问对象后边自动加上 /, 而其他请求方式不会自动加

    92030

    深入浅出 Laravel 路由执行原理

    预备知识 通过之前 Laravel 内核解读文章我们知道在 Laravel ,所有的服务都是通过「服务提供者」 register 方法绑定到「Laralvel 服务容器」, 之后才可以在 Laravel...已缓存路由的话直接从缓存文件读取路由配置; 缓存则由 loadRoutes 方法执行缓存处理。...在之前源码清单,我们看到在 map 方法内部会分别调用并执行了 mapWebRoutes() 和 mapApiRoutes() 这两个方法,它们工作是分别加载 Web 路由Api 路由配置。...将给定属性(中间件、命名空间等)更新到路由组栈。...最终在 Illuminate\Routing\Router::group 方法里去执行路由文件引入处理: 通过 updateGroupStack 方法,更新路由属性(即由 Route::middleware

    6.8K30

    Asp.Net Web API(三)

    Routing Tables路由表     在Asp.Net Web API,一个控制器就是一个处理HTTP请求类,控制器public方法就被叫做action方法或简单Action。...当Web API框架接收到一个HTTP请求时,它会试图根据路由一个路由模板来匹配其URI。如果无路由匹配,客户端会接收到一个404(未找到)错误。...通过这种方式,可以用“/product”进入一个控制器,而“/api/product”进入一个Web API控制器。当然,如果你不喜欢这种约定,也可以修改这个默认路由表。      ...1.为了找到Controller,Web API会把“控制器”加到{Controller}变量值          2.为了找到Action,Web API会查找HTTP方法,然后寻找一个名称以HTTP...这种风格路由类似于Asp.Net MVC,而且可能与RPC式API接近。   你也可以通过使用ActionName注解属性来覆盖动作名。

    1.7K50

    Web API--入门--(一)ASP.NET Web API 2(C#)入门

    在解决方案资源管理器,右键单击Models文件夹。从上下文菜单,选择添加,然后选择类。 ? 将类命名为“产品”。将以下属性添加到Product类。...在Web API控制器是处理HTTP请求对象。...Web API控制器类似于MVC控制器,但继承ApiController类而不是Controller类。 在解决方案资源管理器,右键单击Controllers文件夹。选择添加,然后选择控制器。 ?...脚手架在Controllers文件夹创建一个名为ProductsController.cs文件。 ? 注意 您不需要将控制器放入名为Controllers文件夹。...例如,要获得ID为5产品,URI为api/products/5。 有关Web API如何将HTTP请求路由控制器方法更多信息,请参阅ASP.NET Web API路由

    4.2K10

    【ASP.NET Core 基础知识】--Web API--创建和配置Web API(一)

    通过使用Web API,移动应用可以轻松地与后端服务通信,获取和更新数据,实现应用与服务器有效连接。 微服务架构: 在微服务架构,各个服务通过API进行通信。...三、配置路由控制器 3.1 理解路由基本概念 在Web API路由是决定如何将HTTP请求映射到控制器和操作方法过程。理解Web API路由基本概念对于构建和设计API端点是至关重要。...路由中间件: 在ASP.NET Core路由通过路由中间件来处理路由中间件在HTTP请求到达控制器之前,负责解析URI并确定要执行控制器和操作方法。...在ASP.NET Core Web API路由规则定义了如何映射HTTP请求URI到相应控制器和操作方法。...了解Web API路由基本概念是关键,可以通过特性路由或全局路由配置来定义API端点。创建数据模型是构建API基础,可以通过数据注解或Fluent Validation来进行验证。

    82100

    .NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core重要改进!

    以下是此预览版新功能摘要: 服务器和中间件 默认情况下禁用HTTP/3 API编写 在最小API、MVC和SignalR中支持键入服务 Blazor Blazor Web App模板更新 从额外程序集中发现用于静态服务器呈现组件...从.NET 8 RC1开始,可以在使用最小API、基于控制器API和SignalR中使用键入服务。...以下示例展示了最小API控制器支持: using Microsoft.AspNetCore.Mvc; var builder = WebApplication.CreateBuilder(args...Components/Layout文件夹包含应用程序布局。 Components/Pages文件夹包含可路由页面组件。...已经找到了原因,并在RC2解决了此问题。 Blazor Web App模板创建多个计数器组件 Blazor Web App在启用交互式WebAssembly组件时采用了不必要解决方案。

    32940

    Laravel 中使用 DingoAPI

    ,所有用户可以访问 API_SUBTYPE :项目的简称,或者项目名称 API_VERSION : 版本号 API_PREFIX 和 API_DOMAIN : 前缀和域名, 前缀或域名是必须...来进行测试 推荐使用 POSTMAN 调试工具, 网址输入地址 http://laravel-api.test/api/test ,不出意外 应该会输出 hello world 字样 另外一种很常见访问方式是通过...,实际项目中,我们不可能所有的代码都放在路由文件。...接下来,我们新建控制器来替换路由示例代码。 首先,我们新建一个基类控制器,让我们所有其他控制器,默认继承我们新建控制器。...web 控制器区分,我们将所有有关接口控制器都放到Api 目录下.增加 v1 和 v2 我们是为了后续版本管理 打开这两个控制器, 替换如下代码: <?

    2.2K10

    重学巩固你Vuejs知识体系(下)

    $mount(el)表示处于挂载状态,可以手动调用这个方法来挂载。判断是否有template属性。 如果有el属性,判断是否有template属性。...,路由会调用对应控制器来处理,控制器会获取数据,将结果返回给前端,让页面重新渲染。...,指向了自己定义数组原型方法,这样当调用数组api时,可以通知依赖跟新,如果数组包含着引用类型,会对数组引用类型再次进行监控。...vue-router提供导航守卫主要用来通过跳转或取消方式守卫导航。有多种机会植入路由导航过程,全局,单个路由独享,或者组件级。...作用域插槽,通过 slot-scope属性来接受组件传入属性集合 默认插槽 代码: // 组件 默认值

    2.6K30

    【Laravel系列3.4】中间件在路由控制器应用

    比如说,我们请求发过来,在没有到达路由或者控制器时候,就可以通过中间件做一些预判,像参数合法不合法、登录状态判断之类。...在 TP3 时候,其实那几个勾方法也可以视为是中间件一种,只不过它们是请求已经到达控制器了,但在调用具体控制器方法之前,预埋了一些勾子函数而已,关于勾子函数相关知识可以参考 【PHP设计模式-...而前置中间件在业务开发,我们使用得最多其实是对于登录鉴权验证,比如用户是否登录,是否有权限,都可以在未到达控制器之前通过中间件进行判断,如果登录或者权限不够就直接返回错误信息。...我们使用依然是和上面那个路由相同控制器方法,只不过在这个路由上,我们没有指定中间件,而是在控制器代码,在 构造函数 里面通过 middleware() 方法指定了中间件,这样就可以让这个控制器所有方法都去执行指定中间件内容...其实他们对应就是路由文件夹 api.php 和 web.php 所要加载中间件。

    2.6K50

    Laravel学习笔记(一)——初次见面,多多关照!

    Laravel 默认提供了四个路由文件用于给不同入口使用:web.php、api.php、 console.php 和 channels.php。...,如果应用无需提供无状态、RESTful 风格 API,那么路由基本上都要定义在 web.php 文件。...api.php文件 api.php 文件包含路由位于 api 中间件组约束之内,支持频率限制功能,这些路由是无状态,所以请求通过这些路由进入应用需要通过 token 进行认证并且不能访问 Session...Laravel还有一个路由,所有请求都通过路由,再由路由决定将该请求转发至控制器还是直接打回。...同理,路由只需将”击中“路由规则正常请求转发到对应控制器”击中“路由规则请求拦截即可。其他事情交给服务员(C)和厨师(M)做就行了。

    2.3K00

    ASP.NET Core MVC 概述

    ASP.NET Core MVC 是使用“模型-视图-控制器”设计模式构建 Web 应用和 API 丰富框架。 什么是 MVC 模式?...通过基于约定路由,可以全局定义应用程序接受 URL 格式以及每个格式映射到给定控制器上特定操作方法方式。...; 借助属性路由,可以通过用定义应用程序路由属性修饰控制器和操作来指定路由信息。 这意味着路由定义位于与之相关联控制器和操作旁。...区域是应用程序内一个 MVC 结构。 在 MVC 项目中,模型、控制器和视图等逻辑组件保存在不同文件夹,MVC 使用命名约定来创建这些组件之间关系。...Web API 除了作为生成网站强大平台,ASP.NET Core MVC 还对生成 Web API 提供强大支持。 可以生成可连接大量客户端(包括浏览器和移动设备)服务。

    6.4K20
    领券