[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

posted on   越哲  阅读(1515)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示