Возвращает ошибку odata 4 в ASP.NET Ядро

#asp.net-core #odata

#asp.net-ядро #odata #asp.net-core

Вопрос:

Я использую Microsoft.AspNetCore.ОДата

Во время операции исправления мы проверяем, что в системе нет дубликатов, и если это так, я хочу вернуть 400 клиенту с правильно отформатированной ошибкой Odata 4

Такие , как

 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"
}
  

Комментарии:

1. Привет @JProgrammer, есть какие-нибудь новости по этому делу?

2. Привет @Yinqiu да, все сработало, как описано, спасибо

Ответ №1:

Вы можете изменить свой код, как показано ниже:

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

Результат:
введите описание изображения здесь