[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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!