我在ASP.net web API中使用api控制器,我需要通过[FromBody]类型将值传递给post方法..
[HttpPost]
public HttpResponseMessage Post( [FromBody]string name)
{
....
}
我使用 Postman 插件但是当发送到名称的post方法值时,总是 null ..请按照下图:
为什么会这样??
答案 0 :(得分:34)
答案 1 :(得分:32)
你不能使用json和FromBody绑定单个原始字符串,json将传输一个对象,控制器将依次指望一个复杂的对象(模型)。如果您只想发送一个字符串,请使用url编码。
在标题集上
Content-Type: application/x-www-form-urlencoded
POST请求消息正文的正文应该是=saeed
(基于您的测试值)而不是其他内容。对于未知/变量字符串,您必须对值进行URL编码,以便您不会意外地使用输入字符进行转义。
创建一个模型并使用它。
邮件正文值:{"name":"saeee"}
c#
public class CustomModel {
public string Name {get;set;}
}
控制器方法
public HttpResponseMessage Post([FromBody]CustomModel model)
使用URI而不是邮件正文将原始字符串传递给帖子。