[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