コード例 #1
0
        public void Configure(ApiBehaviorOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            options.InvalidModelStateResponseFactory = GetInvalidModelStateResponse;

            IActionResult GetInvalidModelStateResponse(ActionContext context)
            {
                var errorDetails = _errorDescriptionFactory.CreateErrorDescription(
                    context.ActionDescriptor,
                    context.ModelState);

                var result = (errorDetails is ModelStateDictionary modelState) ?
                             new BadRequestObjectResult(modelState) :
                             new BadRequestObjectResult(errorDetails);

                result.ContentTypes.Add("application/problem+json");
                result.ContentTypes.Add("application/problem+json");

                return(result);
            }
        }
コード例 #2
0
        public void Configure(ApiBehaviorOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            options.InvalidModelStateResponseFactory = GetInvalidModelStateResponse;

            IActionResult GetInvalidModelStateResponse(ActionContext context)
            {
                var errorDetails = _errorDescriptionFactory.CreateErrorDescription(
                    context.ActionDescriptor,
                    new ValidationProblemDetails(context.ModelState));

                return(new BadRequestObjectResult(errorDetails)
                {
                    ContentTypes =
                    {
                        "application/problem+json",
                        "application/problem+xml",
                    },
                });
            }
        }