以错误的请求返回Json

时间:2017-05-31 18:05:41

标签: c# asp.net-core asp.net-core-webapi

所以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();
            }
        }
    }

1 个答案:

答案 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,也无法正确解析。