.NetCore设置API post方式可以直接括号内接受参数

本文介绍了如何在.NetCore WebAPI 中禁用默认的参数推理规则,以便在Post方法中直接在括号内指定参数。通过在Startup.cs的ConfigureServices中配置ApiBehaviorOptions,可以关闭参数的自动绑定,支持更简单的API编写方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

众所周知,在.NetCore WebApi中,Post方式的api接收参数时不能像Get那些,直接把接受参数写到方法后边括号内,如:

[HttpPost]
public string GetAreaGroupList(string id){
   return id;
}

这个是因为api默认推理规则,绑定源推理,借助这些规则,无需通过将属性应用于操作参数来手动识别绑定源,其中几种规则为
  [FromBody]针对复杂类型参数进行推断。但其不适用于具有特殊含义的任何复杂的内置类型,如IFormCollection和CancellationToken。
  [FromForm]针对IFormFile和IFormFileCollection类型的操作参数进行推断。
  [FromRoute]针对与路由模板中的参数相匹配的任何操作参数名称进行推断。
  [FromQuery]针对任何其他操作参数进行推断。

但是有时不想这么复杂编写api,只想在括号内一个一个写接受参数,那就把默认推理规则关掉就好了。

.NetCore中禁用api推理规则,在Startup.cs ConfigureServices中这样写:

services.AddControllers(cfg => { cfg.Filters.Add(new ExceptionHandleAttribute()); })
                .ConfigureApiBehaviorOptions(options =>
            {
                //options.SuppressConsumesConstraintForFormFileParameters = true;//禁用当[FromForm]属性批注时,推理multipart/form-data请求内容类型
                options.SuppressInferBindingSourcesForParameters = true;//禁用api的推理规则,这样就支持post方式直接括号接受参数和model参数方式
            });

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值