所以OK(value)返回带有application / json头的格式化json。然而,BadRequest()没有。如果请求是一个应用程序/ json不应该响应那样即使它是一个错误的请求吗?
[HttpPost]
public IActionResult Post([FromBody]Resolution value)
{
using (_ctx)
{
try
{
if (ValidateResolution(value.Size))
{
_ctx.Resolution.Add(value);
_ctx.SaveChanges();
return Ok(value);
}
return BadRequest("{message:hello}");
} catch (Exception) {
return BadRequest();
}
}
}
答案 0 :(得分:17)
您正在做的是将字符串传递给BadRequest(),这会使您的Action返回一个内容类型为纯文本的响应。
如果您想返回一个响应类型为application / json的JSON对象,那么您应该将一个不是字符串的对象传递给BadRequest()。您甚至可以传递一个匿名对象来快速创建一个JSON对象,如下所示:
return BadRequest(new { message = "bad request"});
PS:正确的JSON格式是{“field_name”:“field_value”}(没有值的引号是数字,bool,null)。因此,根据您所编写的内容,即使您将内容类型更改为application / json,也无法正确解析。