这400 Bad Request不会通过我的异常处理程序:
{
"message": "The request is invalid.",
"messageDetail": "The parameters dictionary contains a null entry for parameter 'subscriptionId' of non-nullable type 'System.Guid' for method 'System.Net.Http.HttpResponseMessage Get(System.Guid)' in 'Product.Controllers.ItemController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter."
}
在我的WebApiConfig.cs
我有这个:
config.Services.Replace(typeof(IExceptionHandler), new HttpExceptionHandler());
从Action,Repository,Service Layer级别抛出的每个异常都由此异常处理程序处理。但是对于这个错误,通用的WebApi异常处理程序开始了。
我应该如何解决这个问题,以便让这个异常通过我的异常处理程序?
答案 0 :(得分:0)
我有同样的问题,这是我的解决方案
1-添加过滤器
public class RequestNoValidoAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (!actionContext.ModelState.IsValid)
{
var response = new HttpResponseMessage(HttpStatusCode.BadRequest)
{
RequestMessage = actionContext.Request,
Content = new StringContent("Formato no válido.")
};
actionContext.Response = response;
}
}
}
2-在WebApiConfig.cs
config.Filters.Add(new RequestNoValidoAttribute());