記一次在 Get 請求參數為 Null 值的折騰


先說主要原因,是因為一個 NgZerro 的 Select 組件,需要顯示 placeHolder 文字,初始值為 null,然后直接綁定到查詢參數中,傳輸到后端導致 BadRequest,參數解析失敗。

原因也很簡單。。。Get請求直接帶的  localhost:4200/api/xxx?parameter=null   這里的 parameter 會被 net core 中的 DefaultModelBinder 轉換為字符串 'null',然后就是悲劇了。

解決辦法也很簡單,要么人為的編碼控制,不要有 null 的參數存在,但是這個並不能說完全就會記得(人畢竟會容易犯錯),所以就只能從 AOP 的角度去過濾了。

前端 Angular 通過 HttpInterceptor 去攔截所有請求

 

 后端自己寫了個 ModelBinder 去過濾這種數據

 

 至於為什么要這么麻煩去做,主要是為了容錯率,人總是會犯錯,那么就增加容錯率,畢竟人不是機器。


免責聲明!

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



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