2017-05-31 91 views
1

所以行(值)返回JSON格式与应用程序/ JSON报头。但是BadRequest()不会。如果请求是应用程序/ json,即使它是一个错误的请求,响应也不应该如此吗?返回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(); 
      } 
     } 
    } 

回答

8

你正在做的是将一个字符串传递给BadRequest(),它使你的Action返回一个带有内容类型纯文本的响应。

如果你想返回一个JSON对象与应用/ JSON的响应类型,那么你就应该通过一个对象不是一个字符串错误请求()。你甚至可以通过一个匿名对象快速创建一个JSON对象,像这样:

return BadRequest(new { message = "bad request"}); 

PS:适当的JSON格式为{“FIELD_NAME”:“FIELD_VALUE”}(用于值没有引号是它的一个数字,布尔,空)。所以从你写什么,即使你改变了内容类型为application/JSON,它不能正确解析。

+0

谢谢!啊,是的,JSON不合适。这个例子我只是把它们扔在一起。 –