Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当FluentValidation返回错误时,如何返回自定义响应?_C#_Asp.net Core_.net Core_Asp.net Core Webapi_Fluentvalidation - Fatal编程技术网

C# 当FluentValidation返回错误时,如何返回自定义响应?

C# 当FluentValidation返回错误时,如何返回自定义响应?,c#,asp.net-core,.net-core,asp.net-core-webapi,fluentvalidation,C#,Asp.net Core,.net Core,Asp.net Core Webapi,Fluentvalidation,我正在使用FluentValidation验证我的ASP.NET Core 3.1 Web API的输入。我是用“自动”的方式做的。因此,在我的Startup课程中,我有: services.AddControllers() .AddFluentValidation(opt => { opt.RegisterValidatorsFromAssemblyContaining(typeof(User

我正在使用
FluentValidation
验证我的
ASP.NET Core 3.1 Web API的输入。我是用“自动”的方式做的。因此,在我的
Startup
课程中,我有:

        services.AddControllers()
            .AddFluentValidation(opt =>
            {
                opt.RegisterValidatorsFromAssemblyContaining(typeof(UserInputValidator));
            });
通过这种方式,
FluentValidation
神奇地验证来自上述程序集的所有输入,而不需要其他代码。很甜蜜,但是。。。响应格式与我返回
BadRequest
时使用的响应格式不同。这是FluentValidation格式:

{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "|3b037c98-40d28ab8553d6989.",
    "errors": {
        "UserId": [
            "'User Id' must be greater than '0'."
        ],
        "Score": [
            "'Score' must be between 0 and 500. You entered 900."
        ]
    }
}
我宁愿:

{
    "code": 123456,
    "message": "One or more validation errors occurred.",
    "errors": [
        "'User Id' must be greater than '0'.",
        "'Score' must be between 0 and 500. You entered 900."
    ]
}
所以我的问题是,有可能推翻它吗

我有一个想法,但不确定这是否是一个好的实践(甚至可能),但是如果
FluentValidation
而不是返回它的
BadRequest响应
将抛出异常,我将能够在中间件中捕获它并重新格式化


无论如何,
FluentValidation
非常流行,
.NET核心WebAPI
非常流行。我很难相信“忍者开发者”会仅仅使用第三方工具提供的响应,这与他们的响应格式不匹配。然而,我看不到很多材料如何修复它(甚至在
FluentValidation
网站上。我错过了吗?

你有没有检查@MuhammadHannan这些答案的问题,是他们没有用错误代码解决问题你检查@MuhammadHannan这些答案的问题,是他们没有用错误代码解决问题