做一个登录模块,提供api给前端调用,发现死活拿不到入参。最开始的写法如下:
public string Login([FromBody] string InData) { //读取登录json Log.AddTrack("LoginController.Login", "Begin"); Log.AddTrack("LoginController.Login", "收到入参:" + InData); return InData; }
postman调用如下:
查看本地日志:
居然为空!
public class DataModel { public string InParam { get; set; } } public string Login([FromBody] DataModel InData) { //读取登录json Log.AddTrack("LoginController.Login", "Begin"); Log.AddTrack("LoginController.Login", "收到入参:" + InData.InParam); return InData.InParam; }
结果同上,没有效果,于是猜测可能接收到的不是一个string,所以都赋值不过去。
public string Login([FromBody] JObject InData) { //读取登录json Log.AddTrack("LoginController.Login", "Begin"); Log.AddTrack("LoginController.Login", "收到入参:" + InData.ToString()); return InData.ToString(); }
嘿,还真可以!
不知道这种接收方式是谁想出来的。
问题解决!
再拓展一下:
[Route("test")] [HttpPost] public string TestReturn(string a,string b) { //读取登录json Log.AddTrack("LoginController.TestReturn(", "Begin"); return a + b; }
postman调用方式:
https://blog.csdn.net/PLA12147111/article/details/89666797
https://www.cnblogs.com/rohelm/p/3207430.html