Example #1
0
    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",
                },
            });
        }
Example #5
0
        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);
        }
Example #6
0
        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));
        }
Example #7
0
 public IActionResult GetClientError(ActionContext actionContext, IClientErrorActionResult clientError)
 {
     return(new JsonResult("自定义的错误信息"));
 }