Asp.net core 将[FromBody]属性应用于.net core中的所有控制器操作

Asp.net core 将[FromBody]属性应用于.net core中的所有控制器操作,asp.net-core,.net-core,asp.net-core-webapi,modelbinders,Asp.net Core,.net Core,Asp.net Core Webapi,Modelbinders,有一个简单的.NET核心API,模型在请求体中作为JSON发布,如何将[FromBody]属性应用于所有控制器方法 [Route("api/simple")] public class SimpleController : ControllerBase { [HttpPost] public IActionResult Post([FromBody] MyRequest request) { return Ok(); } } 如果我删除[From

有一个简单的.NET核心API,模型在请求体中作为JSON发布,如何将
[FromBody]
属性应用于所有控制器方法

[Route("api/simple")]
public class SimpleController : ControllerBase
{
    [HttpPost]
    public IActionResult Post([FromBody] MyRequest request)
    {
        return Ok();
    }
}

如果我删除
[FromBody]
属性,所有模型属性都将为空。

如果您
使用
内容类型:application/json
在主体内发布您的模型,那么您告诉
ModelBinder
通过应用
[FromBody]
属性从主体读取模型

但是将
[FromBody]
添加到所有API操作中会让您感觉很糟糕

只需将应用于控制器,您就不再需要
[FromBody]

[ApiController]

指示某个类型和所有派生类型用于服务HTTP API响应

使用此属性装饰的控制器配置了旨在改善开发人员构建API体验的功能和行为

因此,在ASP.NET Core 2.1及更高版本中,这在没有[FromBody]的情况下工作

[Route("api/simple")]
[ApiController]
public class SimpleController : ControllerBase
{
    [HttpPost]
    public IActionResult Post(OrderRequest request)
    {
         return Ok();
    }
}