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

时间:2015-04-16 00:59:47

标签: c# asp.net asp.net-web-api asp.net-core

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

throw new HttpResponseException(HttpStatusCode.BadRequest);

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

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

1 个答案:

答案 0 :(得分:8)

要回答您的问题,您可以使用WebApiCompatibilityShim哪些端口 $stateProvider.state('parent', { resolve:{ resA: function(){ return {'value': 'A'}; } }, controller: 'parentCtrl' }) .state('parent.child', { resolve:{ // Adding resA as an argument here makes it so that this child state's resB resolve // function is not run until the parent state's resA resolve function is completed. resB: function(resA){ return {'value': resA.value + 'B'}; } } controller: 'childCtrl' }) (以及许多其他功能)转发到MVC 6.(感谢DWright提供了that article的链接。)

似乎MVC-6的方法是从您的方法返回IActionResponse,然后调用HttpResponseException,它是基础HttpBadRequest()类上返回Microsoft.AspNet.Mvc.Controller的方法},我认为这是获得400状态的最佳方式。

BadRequestResult类也有其他响应代码的方法 - 包括导致404返回的Controller方法。

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