首页 文章

通过Postman插件传递值[FromBody]到post方法时的空值[重复]

提问于
浏览
23

这个问题在这里已有答案:

我在ASP.net web API中使用api控制器,我需要通过[FromBody]类型将值传递给post方法 .

[HttpPost]
 public HttpResponseMessage Post( [FromBody]string name)
 {
     ....
 }

我使用 Postman 插件,但发送到post方法的值 name 始终是 null ..请按照下图:
enter image description here

并在Post方法中:
enter image description here

为什么会这样?!

2 回答

  • 27

    你不能使用json和FromBody绑定单个原始字符串,json将传输一个对象,控制器将依次期望一个复杂的对象(模型) . 如果您只想发送单个字符串,请使用url编码 .

    在 Headers 集上

    Content-Type: application/x-www-form-urlencoded
    

    POST请求消息正文的正文应该是 =saeed (基于您的测试值)而不是其他内容 . 对于未知/变量字符串,您必须对值进行URL编码,以便您不会意外地使用输入字符进行转义 .


    替代1

    创建一个模型并使用它 .

    邮件正文值: {"name":"saeee"}

    C#

    public class CustomModel {
        public string Name {get;set;}
    }
    

    控制器方法

    public HttpResponseMessage Post([FromBody]CustomModel model)
    

    备选2

    使用URI而不是邮件正文将原始字符串传递给您的帖子 .

  • 28

    使用原始json发布字符串,不要忘记双引号 .

    enter image description here

相关问题