C# 如何在ASP 5(vnext)中抛出HttpResponseException
我正在用ASP 5编写一个api控制器。如果传递给服务的参数不正确,我想返回一个错误的请求代码异常。在当前版本的webapi中,我将执行以下操作:C# 如何在ASP 5(vnext)中抛出HttpResponseException,c#,asp.net,asp.net-web-api,asp.net-core,C#,Asp.net,Asp.net Web Api,Asp.net Core,我正在用ASP 5编写一个api控制器。如果传递给服务的参数不正确,我想返回一个错误的请求代码异常。在当前版本的webapi中,我将执行以下操作: throw new HttpResponseException(HttpStatusCode.BadRequest); 但是HttpResponseException是System.Web的一部分,它已从ASP 5中删除,因此我无法再实例化它 在vNext中执行此操作的正确方法是什么?要回答您的问题,您可以使用which portHttpRespo
throw new HttpResponseException(HttpStatusCode.BadRequest);
但是HttpResponseException
是System.Web
的一部分,它已从ASP 5中删除,因此我无法再实例化它
在vNext中执行此操作的正确方法是什么?要回答您的问题,您可以使用which port
HttpResponseException
(以及许多其他功能)将其转发到MVC 6。(感谢DWright提供的链接。)
MVC-6的方法似乎是从您的方法返回一个IActionResponse,然后调用HttpBadRequest()
,这是一个基于Microsoft.AspNet.MVC.Controller
类的方法,该类返回一个BadRequestResult
,我认为这是在响应中获得400状态的最佳方法
Controller
类也有用于其他响应代码的方法-包括导致返回404的HttpNotFound()
方法
另请参见:查看。这是准确的。FWIW,OP似乎在寻找400而不是404,因此
返回HttpBadRequest()
。来这里找401,或return HttpUnauthorized()
。谢谢,@lc。-我没有注意到差异。我编辑了我的回复。WebAPicCompatibilitySIM的链接已断开。另外,您能否评论一下我们应该如何使用MVC5响应基本的RESTful请求(即使在生成的模板中,MVC5也是“void”方法)。