public static IMvcBuilder UseProblemDetailsInvalidModelStateResponseFactory(this IMvcBuilder builder) { builder.Services.Configure <ApiBehaviorOptions>(options => { options.InvalidModelStateResponseFactory = context => { var problemDetails = new ModelStateValidationProblemDetails(context.ModelState) { Instance = context.HttpContext.Request.Path, Status = StatusCodes.Status400BadRequest, Type = $"https://httpstatuses.com/400", Detail = "Model State Validation" }; return(new BadRequestObjectResult(problemDetails) { ContentTypes = { "application/problem+json", "application/problem+xml" } }); }; }); return(builder); }
public override ProblemDetails ProblemDetails() { var problemDetails = new ModelStateValidationProblemDetails() { Title = Title, Detail = Detail, Instance = Instance, Status = Status ?? StatusCodes.Status400BadRequest, Type = Type, Errors = _errors.ToList() }; foreach (KeyValuePair <string, object> extension in Extensions) { problemDetails.Extensions.Add(extension); } return(problemDetails); }