我在ASP 5中编写api控制器。如果传递给服务的参数不正确,我想返回错误的请求代码异常。在当前版本的webapi中,我会这样做:
throw new HttpResponseException(HttpStatusCode.BadRequest);
但HttpResponseException
是System.Web
的一部分,已从ASP 5中删除,因此我无法再实例化它。
在vNext中执行此操作的正确方法是什么?
答案 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