2017-05-31 93 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不合適。這個例子我只是把它們扔在一起。 –