【发布时间】:2019-08-23 11:48:08
【问题描述】:
在我的 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:
如您所见,当我使用Postman 发送POST 请求时,传递给PostAuthor(Author author) 方法的参数是null,结果模型验证失败:
我应该怎么做才能确保可以处理来自Postman 的POST 请求?
【问题讨论】:
-
错误不是很明显?当您声明像这样的 JsonObject `new { key = value} ` 时,您不在 Visual Studio 中,但您在 Postman 中创建 JsonObject 的地方,如
{ key : value , key1 : value1 }。希望这会有所帮助 -
@my_g 当您以编程方式发送请求时,作者的价值是什么?
-
如果您将作者发送为 null 并且您自动输入作者姓名,则您的模型无效,这就是 ModelState.IsValid 为 false 并返回 badrequest 的原因
-
@GabrielCostin 你是对的;我睡眠不足的大脑错过了明显的解决方案......
-
@MY_G 没问题,它可以发生在每个人身上。
标签: c# asp.net json asp.net-web-api postman