你如何在ASP 5(vnext)中抛出HttpResponseException

我正在ASP 5中编写一个api控制器。如果传递给服务的参数不正确,我想返回一个错误的请求代码exception。 在当前版本的webapi中,我会这样做:

throw new HttpResponseException(HttpStatusCode.BadRequest); 

但是HttpResponseExceptionSystem.Web一部分,它已从ASP 5中删除,因此我无法再实例化它。

在vNext中执行此操作的正确方法是什么?

要回答您的问题,您可以使用WebApiCompatibilityShim将HttpResponseException (和许多其他function)移植到MVC 6中。(感谢DWright提供该文章的链接。)

似乎MVC-6的方法是从你的方法返回一个IActionResponse,然后调用HttpBadRequest()这是一个返回BadRequestResult的基础Microsoft.AspNet.Mvc.Controller类的方法,我相信这是获得400状态的最佳方式。

Controller类还有其他响应代码的方法 – 包括导致返回404的HttpNotFound()方法。

另见: https : //docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api