.net core 中的[FromBody]


一、針對.net core中post類型的api注意的地方(前提是Controller上加[ApiController]特性)。默認是這個。

1、如果客戶端Content-Type是application/json,  api接口如果是用單個對象做參數的時候,加或者不加[FromBody]都可以正常解析參數,但是接口是用對象列表做參數時候,則必須加[FromBody],否則讀取不到參數。

2、如果客戶端Content-Type不是application/json,api接口必須加[FromForm],否則客戶端調用接口會報400錯誤。

3、如果加上[FromBody],客戶端Content-Type不是application/json,接口會報400錯誤。

 

二、Controller上不加[ApiController]特性),當application/json類型的時,讀取的參數將全為空,而非application/json卻可以正常解析,無論怎么客戶端不會拋出400異常。

 

寫兩段測試代碼Controller上加[ApiController]特性

     [HttpPost("PostList")]
        public void PostList([FromBody]List<Person> person)
        {
            List<Person> personObj = person;
        }


        [HttpPost("PostSingle")]
        public void PostSingle(Person person)
        {
            Person personObj = person;
        }

 

綜合上述,客戶端如果是提交json數據時候建議都加上[FromBody]。

如果客戶端提交的數據Content-Type如果不為application/json時,會報錯,如果要解決報錯,需要在接口上加上[FromForm]。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM