在我的ASP.NET WebApi程序中,我有一个Author
模型:
public class Author
{
public int Id { get; set; }
[Required] public string Name { get; set; }
}
我还有一个AuthorsController
和一个PostAuthor(Author author)
方法:
// POST: api/Authors
[ResponseType(typeof(Author))]
public async Task<IHttpActionResult> PostAuthor(Author author)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// etc.
}
当我在单元测试中以编程方式发送POST
请求时,将返回HTTP Status Code 201 Created
:
但是,当我使用Postman发送POST
请求时,却收到HTTP Status Code 400 Bad Request
:
如您所见,当我使用POST
发送Postman
请求时,传递给PostAuthor(Author author)
方法的参数为null
,因此模型验证失败:
我该怎么做以确保可以处理来自POST
的{{1}}请求?
答案 0 :(得分:1)
变更夫妇:将其定义为HttpPost
,然后像使用FromBody
// POST: api/Authors
[HttpPost]
[ResponseType(typeof(Author))]
public async Task<IHttpActionResult> PostAuthor([FromBody] Author author)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// etc.
}
答案 1 :(得分:1)
在邮递员正文中用=替换=,毕竟是JSON。
答案 2 :(得分:0)
如果您以application / json格式发送并且您的API等待以INBOUND JSON格式发送,请尝试以JSON格式发送,例如
{
"Id":"6",
"Name":"P.G. Wodehouse"
}