【问题标题】:Returning a odata 4 error in ASP.NET Core在 ASP.NET Core 中返回 odata 4 错误
【发布时间】:2020-10-23 15:43:57
【问题描述】:

我正在使用 Microsoft.AspNetCore.OData

在补丁操作期间,我们验证系统中没有重复,如果是这样,我想用正确格式的 Odata 4 error 向客户端返回 400

public async Task<IActionResult> Patch([FromODataUri] int key, [FromBody] Delta<User> patch)
{
  return BadRequest("Duplicate email address");
}

我希望 json 正文是

{
  "error": {
    "code": "400",
    "message": "Duplicate email address"
  }
}

但是我收到了

{
  "@odata.context":"https://localhost:3200/odata/$metadata#Edm.String",
  "value":"Duplicate email address"
}

【问题讨论】:

  • 嗨@JProgrammer,关于这个案例有什么更新吗?
  • 嗨@Yinqiu 是的,正如所描述的那样工作,谢谢

标签: asp.net-core odata


【解决方案1】:

您可以如下更改您的代码:

var statusCode = (int)HttpStatusCode.BadRequest;
return BadRequest(new ODataError { ErrorCode = statusCode.ToString(), Message = "Duplicate email address" });

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 2021-10-05
    • 1970-01-01
    • 2020-02-14
    • 2020-12-23
    • 1970-01-01
    • 2018-12-31
    相关资源
    最近更新 更多