.NET CORE控制器里的方法取傳參的坑


把以前的ASP.NET MVC的項目改成用.NET CORE來寫,寫好了部署上去了,結果問題一大堆,今天慢慢檢查了一下,發現一個大坑:
寫控制器里的方法接收參數數都是直接寫在控制器的方法參數里的,如:
public ActionResult CallBack(string msg, string orderno){
......
}

這樣的話不管是在瀏覽器里打http://localhost/aaa/callback?msg=success&orderno=3231354
還是在postman中用POST調用傳msg和orderno參數也能接收到

然后用ASP.NET MVC的項目的時候,第三方發送通知到我的這個方法里,我能接收到msg和orderno參數,
但是用ASP.NET CORE的項目的時候,第三方發送通知到我的這個方法里,我接收不到msg和orderno參數,
都是相同的上面那一段代碼的

找了好久才發現問題所在,原來第三方發送通知到這個方法里傳參數不是通過get傳msg=success&orderno=3231354,也不是通過POST傳msg和orderno參數的,而是通過POST直接把一個JSON字符串:
{
"msg":"success",
"orderno":"55474969"
}
給傳過來的,

然后自己在postman中測試了一下,asp.net mvc的就正常能接收到,但是asp.net core的就接收不到

 

 
000.png
 
111.png

要改的話就只能改ASP.NET CORE的代碼,不在方法參數里寫,自己寫代碼從POST過來的數據流中把JSON字符串取出來,再用JSON.NET轉為對象再用就行了!!!


免責聲明!

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



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