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

Cyb*_*unt 12 c# asp.net asp.net-web-api asp.net-core

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

throw new HttpResponseException(HttpStatusCode.BadRequest);
Run Code Online (Sandbox Code Playgroud)

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

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

n8m*_*mob 8

要回答您的问题,您可以使用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