У меня есть приложение ASP.NET Core 1.0 Web API, и я пытаюсь выяснить, как передать сообщение об исключении клиенту, если функция, которую мой контроллер вызывает из-за ошибок.
Я пробовал так много вещей, но ничего не реализует IActionResult
.
Я не понимаю, почему это не обычное дело, которое нужно людям. Если нет правдивого решения, может кто-нибудь сказать мне, почему?
Я вижу некоторую документацию там, используя HttpResponseException(HttpResponseMessage)
, но для того, чтобы использовать это, я должен установить Compat Shim. Есть ли новый способ сделать это в Core 1.0?
Вот что я пробовал с прокладкой, но она не работает:
// GET: api/customers/{id}
[HttpGet("{id}", Name = "GetCustomer")]
public IActionResult GetById(int id)
{
Customer c = _customersService.GetCustomerById(id);
if (c == null)
{
var response = new HttpResponseMessage(HttpStatusCode.NotFound)
{
Content = new StringContent("Customer doesn't exist", System.Text.Encoding.UTF8, "text/plain"),
StatusCode = HttpStatusCode.NotFound
};
throw new HttpResponseException(response);
//return NotFound();
}
return new ObjectResult(c);
}
Когда возникает HttpResponseException
, я смотрю на клиента и не могу найти сообщение, которое отправляю, в содержимом.