Как вы выбрали исключение HttpResponseException в ASP 5 (vnext)

Я пишу api-контроллер в ASP 5. Я хочу вернуть исключение кода ошибки, если параметры, переданные службе, неверны. В текущей версии webapi я бы сделал:

throw new HttpResponseException(HttpStatusCode.BadRequest);

Однако HttpResponseException является частью System.Web, который был удален из ASP 5, и поэтому я больше не могу его создавать.

Каков правильный способ сделать это в vNext?

Ответ 1

Чтобы ответить на ваш вопрос, вы можете использовать WebApiCompatibilityShim, которые порты HttpResponseException (и многие другие функции) переходят в MVC 6. ( спасибо DWright за ссылку на эту статью.)

Кажется, что способ MVC-6 это вернуть IActionResponse из вашего метода, а затем вызвать HttpBadRequest(), который является методом в базовом классе Microsoft.AspNet.Mvc.Controller, который возвращает BadRequestResult, который, я считаю, лучший способ получить статус 400 в ответ.

В классе Controller есть методы для других кодов ответов, в том числе метод HttpNotFound(), который вызывает возврат 404.

Смотрите также: https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api