This question already has answers here:
FromBody string parameter is giving null
(14个回答)
3年前关闭。
我在ASP.net Web API中使用api Controller ,并且需要通过[FromBody]类型将值传递给post方法。
我使用Postman插件,但是当发送到post方法时,name的值始终为null。
在Post方法中:
为什么会这样?
POST请求消息正文的正文应为
备用1
创建一个模型并使用它。
邮件正文值:
C#
Controller 方式
备用2
使用URI而不是消息正文将原始字符串传递给您的帖子。
(14个回答)
3年前关闭。
我在ASP.net Web API中使用api Controller ,并且需要通过[FromBody]类型将值传递给post方法。
[HttpPost]
public HttpResponseMessage Post( [FromBody]string name)
{
....
}
我使用Postman插件,但是当发送到post方法时,name的值始终为null。
在Post方法中:
为什么会这样?
最佳答案
您不能使用json和FromBody绑定(bind)单个原始字符串,json将传输一个对象,并且 Controller 将依次期望一个复杂的对象(模型)。如果只想发送一个字符串,则使用url编码。
在标题集上
Content-Type: application/x-www-form-urlencoded
POST请求消息正文的正文应为
=saeed
(基于您的测试值),而不能为其他任何内容。对于未知/可变字符串,必须对值进行URL编码,以免出现输入字符意外转义的情况。备用1
创建一个模型并使用它。
邮件正文值:
{"name":"saeee"}
C#
public class CustomModel {
public string Name {get;set;}
}
Controller 方式
public HttpResponseMessage Post([FromBody]CustomModel model)
备用2
使用URI而不是消息正文将原始字符串传递给您的帖子。
09-30 17:18