Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP 5(vnext)中抛出HttpResponseException_C#_Asp.net_Asp.net Web Api_Asp.net Core - Fatal编程技术网

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

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

我正在用ASP 5编写一个api控制器。如果传递给服务的参数不正确,我想返回一个错误的请求代码异常。在当前版本的webapi中,我将执行以下操作:

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”方法)。