ValidationResult 发送 409 冲突状态码 ASP.NET Core Web Api

ValidationResult to send 409 conflict status code ASP.NET Core Web Api

是否可以从 System.ComponentModel.DataAnnotations

的 ValidationResult 方法发送 HttpStatusCode.Conflict(409)

默认返回 HttpStatusCode.BadRequest(400)。是否有任何可能的方法使用 ValidationResult 方法发送不同的状态代码。

由于您使用的是 asp.net 核心,因此您可以在 StartUp > ConfigureServices

中覆盖 ApiController 属性行为
services.AddControllers()
                    .ConfigureApiBehaviorOptions(options => {
                        options.InvalidModelStateResponseFactory = context =>
                        {
                            var problemDetails = new ValidationProblemDetails(context.ModelState)
                            {
                                Status = StatusCodes.Status409Conflict,                            
                            };

                            return new UnprocessableEntityObjectResult(problemDetails){};
                        }; });