public IActionResult GetClientError(ActionContext actionContext, IClientErrorActionResult clientError) { if (clientError is null) { throw new System.ArgumentNullException(nameof(clientError)); } if (clientError.StatusCode.HasValue) { switch (clientError.StatusCode.Value) { case StatusCodes.Status400BadRequest: return(ErrorResult.BadRequest().ToActionResult()); case StatusCodes.Status401Unauthorized: return(ErrorResult.Unauthorized().ToActionResult()); case StatusCodes.Status403Forbidden: return(ErrorResult.Forbidden().ToActionResult()); case StatusCodes.Status404NotFound: return(ErrorResult.NotFound("Not Found").ToActionResult()); case StatusCodes.Status409Conflict: return(ErrorResult.Conflict("Conflict").ToActionResult()); case StatusCodes.Status500InternalServerError: return(ErrorResult.ServerError().ToActionResult()); } } return(ErrorResult.Unknown(clientError.StatusCode).ToActionResult()); }
public IActionResult GetClientError(ActionContext actionContext, IClientErrorActionResult clientError) { var problemDetails = new ProblemDetails { Status = clientError.StatusCode, Type = "about:blank", }; if (clientError.StatusCode is int statusCode && _options.ClientErrorMapping.TryGetValue(statusCode, out var errorData)) { problemDetails.Title = errorData.Title; problemDetails.Type = errorData.Link; SetTraceId(actionContext, problemDetails); } return(new ObjectResult(problemDetails) { StatusCode = problemDetails.Status, ContentTypes = { "application/problem+json", "application/problem+xml", }, }); }
public IActionResult GetClientError(ActionContext actionContext, IClientErrorActionResult clientError) { var result = _enhancedClientErrorFactoryOptions.DefaultErrorAndExceptionResponseFactory(_options, actionContext, clientError); if (result != null) { actionContext.HttpContext.Items["MvcErrorHandled"] = true; } return(result); }
public IActionResult GetClientError(ActionContext actionContext, IClientErrorActionResult clientError) { var problemDetails = _problemDetailsFactory.CreateProblemDetails(actionContext.HttpContext, clientError.StatusCode); return(new ObjectResult(problemDetails) { StatusCode = problemDetails.Status, ContentTypes = { "application/problem+json", "application/problem+xml", }, }); }
public IActionResult GetClientError(ActionContext actionContext, IClientErrorActionResult clientError) { bool showExceptionDetails = false; Exception exception = null; if (clientError is ExceptionResult exceptionResult) { exception = exceptionResult.Error; showExceptionDetails = exception != null && _delegateClientErrorFactoryOptions.ShowExceptionDetails || _delegateClientErrorFactoryOptions.ShowExceptionDetailsDelegate(actionContext, exception); } var result = _delegateClientErrorFactoryOptions.DefaultErrorAndExceptionResponseFactory(_options, actionContext, clientError, exception, showExceptionDetails); if (result != null) { actionContext.HttpContext.Items["MvcErrorHandled"] = true; } return(result); }
public IActionResult GetClientError(ActionContext actionContext, IClientErrorActionResult clientError) { IMyProblemDetails problemDetails; if (clientError is IMyProblemDetailsActionResult problemDetailsActionResult) { problemDetails = problemDetailsActionResult.ProblemDetails; } else { problemDetails = new MyProblemDetails() { Status = clientError.StatusCode, Type = "about:blank", }; if (clientError.StatusCode is int statusCode && _options.ClientErrorMapping.TryGetValue(statusCode, out var errorData)) { problemDetails.Title = errorData.Title; problemDetails.Type = errorData.Link; } } return(MyProblemDetailsActionResult.GetActionResult(actionContext, problemDetails)); }
public IActionResult GetClientError(ActionContext actionContext, IClientErrorActionResult clientError) { return(new JsonResult("自定义的错误信息")); }