[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