[ApiController]属性做什么?


[ApiController]属性支持一些特性,包括属性路由需求、自动模型验证和绑定源参数推断。

这是直接从MS docs Create web api中获得的,核心是ASP.NET:

[ApiController]属性可应用于控制器类,以启用以下自以为是的API-specific行为:

  • 属性路由要求
  • 自动HTTP 400响应
  • 绑定源参数推断
  • Multipart/form-data请求推断
  • 错误状态代码的问题详细信息

错误状态代码的问题详细信息功能需要2.2或更高版本的兼容性。其他功能需要2.1或更高版本的兼容性。

有关以下功能的一些详细信息:

Attribute routing

如果使用[ApiController],则需要属性路由,例如:

[ApiController] [Route("[controller]")] public class DataTablesController: ControllerBase 

通过Startup.Configure中由UseEndpoints、UseMvc或UseMvcWithDefaultRoute定义的常规路由无法访问操作

自动Http 400响应

如果ModelState验证失败,则添加操作筛选器以返回400响应。您不再需要在操作中写入此内容,它将自动处理:

if (!ModelState.IsValid) { return BadRequest(ModelState); } 

绑定源参数推断

同样,从链接的文档:

绑定源属性定义动作参数值所在的位置。存在以下绑定源属性:[FromBody][FromForm][FromHeader][FromQuery][FromRoute][FromServices]

Multipart/form-data请求推断

当用[FromForm]属性注释动作参数时,[ApiController]属性应用推理规则。已推断出multipart/form-data请求内容类型。

 

 

使用绑定源参数推断的示例:

[HttpPost] public IActionResult Test([FromForm] Model model) { return Ok("test"); }




https://blog.csdn.net/xu2034029667/article/details/115630259


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM