【问题标题】:MaxModelValidationErrors = 1 in .NET Core 5.NET Core 5 中的 MaxModelValidationErrors = 1
【发布时间】:2021-08-13 05:26:12
【问题描述】:

我有一个实现IValidatableObject 接口的对象,在“AddControllers”(Startup.cs)中,我将MaxModelValidationErrors 属性设置为1。问题是当我达到错误限制时,我不能没有得到我抛出的自定义错误,我只得到"The maximum number of allowed model errors has been reached"。我需要这个,因为我对数据库进行了验证,并且我不想进行不必要的查询。是否可以使用ValidationResult ("MY_ERROR") 解决此问题?谢谢。

public IEnumerable<ValidationResult> Validate(ValidationContext validationContext){

    ...
    yield return new ValidationResult("MY_ERROR");
    ...

}

没有MaxModelValidationErrors

【问题讨论】:

    标签: c# asp.net-core .net-core asp.net-core-5.0


    【解决方案1】:

    您可以尝试将MaxModelValidationErrors 属性设置为2。

    当它为1时,遇到一个错误就会停止,并在ModelState中添加Exception The maximum number of allowed model errors has been reached,它被视为一个错误,无论错误来自built-in attributes,或custom attributes,或IValidatableObject。所以你不能得到你自己的错误信息。这是设计使然。

    【讨论】:

    • 嗨,我不认为这是解决方案,如果我有 2 个错误,我也会遇到同样的问题 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2021-03-20
    相关资源
    最近更新 更多