c# webApi 获取不到入参,解决方案
2021/10/17 20:13:09
本文主要是介绍c# webApi 获取不到入参,解决方案,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题描述
做一个登录模块,提供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,所以都赋值不过去。
- 再查,发现postman的content-type →application/json,于是想用一个json类来接收,于是改造代码如下:
public string Login([FromBody] JObject InData) { //读取登录json Log.AddTrack("LoginController.Login", "Begin"); Log.AddTrack("LoginController.Login", "收到入参:" + InData.ToString()); return InData.ToString(); }
嘿,还真可以!
不知道这种接收方式是谁想出来的。
问题解决!
拓展
再拓展一下:
- FormBody跟FromUrl
- 使用url的post方式:
[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
这篇关于c# webApi 获取不到入参,解决方案的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#