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

Webapi继承的控制器正在忽略路由属性

WebAPI继承的控制器正在忽略路由属性是因为WebAPI框架默认情况下不会继承基类的路由属性。这意味着,如果一个控制器继承自另一个控制器,并且基类控制器具有路由属性,那么派生类控制器将不会继承这些路由属性。

为了解决这个问题,可以使用RoutePrefixRoute属性来显式地定义路由。RoutePrefix属性可以用于指定控制器的路由前缀,而Route属性可以用于指定具体的路由路径。

以下是一个示例,展示了如何在WebAPI中使用继承的控制器,并定义路由属性:

代码语言:txt
复制
[RoutePrefix("api")]
public class BaseController : ApiController
{
    // 基类控制器的路由属性
    [Route("base")]
    public IHttpActionResult GetBase()
    {
        // 实现基类控制器的逻辑
    }
}

[RoutePrefix("api/derived")]
public class DerivedController : BaseController
{
    // 派生类控制器的路由属性
    [Route("derived")]
    public IHttpActionResult GetDerived()
    {
        // 实现派生类控制器的逻辑
    }
}

在上面的示例中,BaseController具有路由前缀api,并且定义了一个路由路径baseDerivedController继承自BaseController,并且具有路由前缀api/derived,以及一个路由路径derived

这样,当请求api/base时,将调用GetBase方法;当请求api/derived/derived时,将调用GetDerived方法。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,我无法提供相关链接。但你可以通过搜索引擎或腾讯云官方网站来查找与WebAPI开发相关的云服务和产品。

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

相关·内容

VB.NET 创建ASP.NET WebAPI及应用(一)

接下来就是我们路由大侠了RouteConfig.vb,这里面可以配置MVC路由和API等相关路由 3.3,最后就是我们主角WebApiConfig.vb配置API相关属性和主路由 四,最后说就是最常用部分控制器目录...Controllers,目录里面已经生成了两个默认控制器,分别是MVC控制器HomeController.vb和WebAPI控制器ValuesController.vb 4.1 MVC控制器HomeController.vb...继承了MVC控制器基类,不知我们主角,但是可以配置一个主页; 4.2 WebAPI控制器ValuesController.vb继承了ApiController控制器基类 4.3 我们再次运行一下项目...,看一下WebAPI控制器访问,MVC控制已配置默认控制器Home启动项目是,第一眼看到即是!!!...4.3.1 看下我们WebAPI路由,我们跟着访问即可!!

3.4K20
  • Asp.Net WebApi核心对象解析(一)

    ASP.NET WebAPI使用HTTP方法,而不是URI路径,以此来选择动作。还可以使用MVC样式路由WebAPI。...在ASP.NET Web API中,一个控制器是处理HTTP请求类。控制器公共方法被称为动作方法或简单动作。当Web API框架接收到一个请求,它请求路由到一个动作。...ASP.NET Web API路由运行机制如下:       (1).找到控制器,网络API将“控制器值 {}控制变量。      ...,例如“GetContact”或“GetAllContacts”开头动作。该公约只适用于GET,POST,PUT和DELETE方法。您可以通过使用控制器属性启用其他HTTP方法。      ...ApiController是ValuesController类父类,是整个ASP.NET Web API核心类,继承该类可以用来创建ASP.NET Web API控制器

    4.4K70

    小范笔记:ASP.NET Core API 基础知识与Axios前端提交数据

    Microsoft.AspNetCore.Mvc 命名空间提供很多用于配置Web API 控制器行为和操作方法属性: 特性 说明 [Route] 指定控制器或操作 URL 模式。...(这里不创建 WebApi 而是 创建 MVC,通过 MVC 创建 API 控制器)。...view=aspnetcore-2.2 三. action 特性方法 Microsoft.AspNetCore.Mvc 命名空间提供可用于配置 Web API 控制器行为和操作方法属性。...下表是针对于 Controller 或 Action 特性. 特性 说明 [Route] 指定控制器或操作 URL 模式。 [Bind] 指定要包含前缀和属性,以进行模型绑定。...1, [Route] 在微软文档中,把这个特性称为 属性路由 ,定义:属性路由使用一组属性将操作直接映射到路由模板。

    5.6K00

    Asp.Net WebApi核心对象解析(二)

    消息处理程序是对一个操作抽象,它接受HTTP请求消息并返回HTTP响应消息。连接消息处理程序管道和控制器处理层桥梁是控制器分发程序。...控制器分发还是一个消息处理程序,主要是选择、创建和调用正确控制器来处理请求。...(在一个owin兼容服务器上建立一个webapi层)      在使用web托管时,所使用是ASP.NET管道和路由功能,将HTTP请求转发到一个新ASP.NET处理程序,HttpControllerHandler...1.属性概要:       BaseAddress:获取或设置发送请求时所使用互联网资源统一资源标识符(URI)基地址。       ...五.总结:    本文分为上下两篇,简单介绍类一下Asp.Net WebApi一些核心对象,并简单介绍了Asp.Net WebApi路由机制,处理架构,托管方式等等,如有不足和错误之处还望多多指正。

    3.1K100

    asp.net core使用Swashbuckle.AspNetCore(swagger)生成接口文档

    多版本控制(暂时见demo) 使用JWT简单接口验证(暂时见demo) 构建一个webapi项目并使用swagger 新建asp.net core webapi项目 dotnet new webapi...安装nuget包:Swashbuckle.AspNetCore,本文使用版本1.1.0,.net core版本2.0+ 编辑解决方案添加(或者在vs中项目属性->生成->勾选生成xml文档文件...c.DocumentFilter通过IDocumentFilter接口去生成控制器标签(描述) 注:ConfigureServices方法返回值修改了,为了能够正常使用ServiceLocator...文档了~ 注: action方法或者控制器(或者继承)必须有一个包含[Route]特性标记 action方法必须添加请求类型[HttpGet]/[HttpPost]/.....demo查看,大概还有如下几个可以写地方 JWT使用 自定义路由特性标记扩展 api版本控制 文章完整示例 Demo下载 Demo仓库地址 注:Demo 未修改默认启动路径,故应使用

    2K10

    ASP.NET Core 奇淫技巧之动态WebApi

    2.动态WebApi 通过Nuget 为 Application 项目安装组件: Install-Package Panda.DynamicWebApi 为接口 IApplicationService继承...四.详细介绍 经过上面的介绍,大家应该可以看出使用是非常简单,只需两步: 第一步:为你类(或者该类接口、该类继承抽象类,不得放在该类除前面两种情况父类上)继承 IDynamicWebApi接口并加入特性...(6)可以通过HttpGet/HttpPost/HttpDelete等内置特性来覆盖默认路由 (7)默认会根据你方法名字来设置HTTP动词,如 CreateApple 或者 Create 生成API...动词为 POST,对照表如下,若命中(忽略大小写)对照表那么该API名称中这个动词将会被省略,如 CreateApple 将会变成 Apple,如未在以下对照表中,将会使用默认动词 POST 方法名开头...2.配置 所有的配置均在对象 DynamicWebApiOptions 中,说明如下: 属性名 是否必须 说明 DefaultHttpVerb 否 默认值:POST。

    2K20

    ASP.NET Web API编程——模型验证与绑定

    如果未对属性使用特性加以约束,那么ModelState.IsValid值就是true,若对这样属性应用Required特性,那么当客户端为对其赋初值时,验证将无法通过,即ModelState.IsValid...过载 此外当客户端所用实体属性多于服务端时,服务端会忽略多出来属性,但建议控制器操作(Action)所用参数列表参数或类属性与客户端所传参数完全匹配。...这里从URI获取值具体指:从路由词典中获取值或者从URI查询字符串中获取值。具体过程见介绍路由那篇博文。 2)对于复杂类型,Web API会使用多媒体格式化器从消息体中获得值。...默认值提供器从请求URI查询字符串和路由词典中获取值。要绑定参数名称保存在ModelBindingContext.ModelName属性中,模型绑定器在词典中找相应键值对。...这里从URI获取值具体指:从路由词典中获取值或者从URI查询字符串中获取值。具体过程见介绍路由那篇博文。对于复杂类型,Web API会使用多媒体格式化器从消息体中获得值。

    3K50

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

    在这里,我们使用webapi模板来创建一个Web API项目。 dotnet new webapi -n YourApiName 这里-n参数用于指定项目的名称。...这将会编译并运行你Web API应用: dotnet run 应用程序启动后,你应该能够看到输出信息,包括应用程序正在监听端口。...三、配置路由控制器 3.1 理解路由基本概念 在Web API中,路由是决定如何将HTTP请求映射到控制器和操作方法过程。理解Web API路由基本概念对于构建和设计API端点是至关重要。...属性路由(Attribute Routing): ASP.NET Core允许使用属性路由控制器和操作方法上直接定义路由模板。...路由中间件: 在ASP.NET Core中,路由是通过路由中间件来处理路由中间件在HTTP请求到达控制器之前,负责解析URI并确定要执行控制器和操作方法。

    80900

    【开源】NodeJS仿WebApi路由

    用过WebApi或Asp.net MVC都知道微软路由设计得非常好,十分方便,也十分灵活。虽然个人看来是有的太灵活了,team内不同开发很容易使用不同路由方式而显得有点混乱。...不过这不是重点,我在做Node项目的时候就觉得不停用use(...)来指定路由路径很烦人,所以用Typescript写了这个基于Koa和Koa-router路由插件,可以简单实现一些类似WebApi...Router属性上,后面构建路由时就可以用了。...绑定路由到Koa-router上 上面从物理路径得到了路由,但是是以装饰里参数路径优先,所以先看看刚在存在原型里Router属性里有没有Path,有的话就用这个作为路由,没有Path就用物理路由。...WebApi路由,源码在https://github.com/brookshi/webapi-router,欢迎大家Fork/Star,谢谢。

    839100

    .NET WebAPI 使用 GroupName 对 Controller 分组呈现 Swagger UI

    在日常开发 webapi 时,我们往往会集成 swagger doc 进行 api 文档呈现,当api数量比较多时候就会导致 swagger ui 上 api 因为数量太多而显得杂乱,今天教大家如何利用...AuthorizeController : ControllerBase { } 这样就将 AuthorizeController 分到了 Basic 组,在 swagger ui 网页呈现如下 我们可以按照控制器功能属性或者业务属性...上面讲方法需要对所有的控制器进行添加 [ApiExplorerSettings(GroupName = "xxxxx")] 属性,下面顺便介绍一下如何通过文件归类对 控制器进行批量添加 GroupName...,将他赋值到控制器 [ApiExplorerSettings(GroupName = "xxxxx")] GroupName 属性,代码如下 public class GroupNameConvention...GroupName 批量赋值,不过如果想要保持路由前缀和 GroupName 一致的话,还是需要自己手动调整一下 控制器路由前缀。

    1.1K40

    ASP.NET Web API: 宿主(Hosting)

    ASP.NET Web API 处理架构中介绍了ASP.NET Web API主要有三层组成:宿主(hosting),消息处理管道(message handler pipeline)和控制器处理(controller...在ASP.NET平台上,是通过RouteTable静态属性Routes添加路由路由表里,例如下面的代码是ASP.NET MVC项目模板默认定义路由: protected void Application_Start...2、集成Web API,当宿主与ASP.NET,Web API配置定义在单件HttpConfiguration对象里,通过静态属性GlobalConfiguration.Configuration访问...HttpSelfHostServer(config); server.OpenAsync().Wait(); Console.WriteLine("Server is opened"); HttpSelfHostServer 继承与...ASP.NET WebAPI Hosting Techniques http://www.codeproject.com/Articles/555923/ASP-NET-WebAPI-Hosting-Techniques

    1.4K60

    .Net WebApi 初探

    关键类和接口 System.Web.Http.Dispatcher.DefaultHttpControllerSelector webpai选择控制器默认实现,可以重写SelectController...方法 System.Web.Http.Controllers.ApiControllerActionSelector webapi选择指定控制器action默认实现,可以重写SelectAction...System.Web.Http.ApiController api控制器基类,继承于此类都可以成为Api控制器 类和接口关系图 api自定义扩展实现 api注册流程 如果实现Servie...所有服务类都需要继承于ApiController类,让服务类拥有控制器特性 ApiServier类代码(继承ApiController此可,设置服务基类用于后期扩展): public class ApiService...Global.cs中注入Api路由时,必须在Mvc注入路由之前 protected void Application_Start() { common.ServicesContainer.CreateInstance

    92690

    MVC4+WebApi+Redis Session共享练习(下)

    上一篇文章我们主要讲解了一些webApi和redis缓存操作,这篇文章我们主要说一些MVC相关知识(过滤器和错误处理),及采用ajax调用webApi服务。...BaseController.cs 公共控制器,主要重写OnException方法对错误捕捉。HomeController继承BaseController。...,在BaseController中我们定义了一个SessionHelper session变量,SessionHelper为上一篇文章介绍基于Redissession共享,这样只要继承BaseController...1.5、ErrorController.cs 错误页面,这里就不介绍了 2、测试 2.1、MVC项目和WebApi部署 ? webApi为上一篇介绍webApi程序。...我们发现我们获取登陆页面的session值,并取到webApi服务中数据,说明webApi项目的session也有值了,因为webApi项目的HttpResponseMessage Get()方法也做

    69620

    .NET MVC第八章、Web Api 跨域接口

    WebApi项目启动 主页中API选项 这里选择get请求api/values help下面的api/values对应结果 这个不是我们想要,那么我们单独访问一下ip:port/api/values...ASP.NET MVC WEB API操作 由于WebApi单独一个项目,它默认配置不太合适咱们使用,我们要对默认设置做一些调整。...2、修改访问路径 由于我们要根据请求头来判断请求具体函数,比较麻烦,所以我们在访问路由上加上一个【action】层级,让请求写法符合我们常识。...routeTemplate: "api/{controller}/{action}/{id}", 3、自定义API接口 依次选择【Web API】,【Web API 2控制器 - 空】,【添加】 输入控制器名称...,一定要以Controller结束  可以看到继承是ApiController 创建自定义接口函数 默认请求头是get可以省略,如果是post就一定要写。

    56820
    领券