c# - .NET Core 5 中的 MaxModelValidationErrors = 1
问题描述
我有一个实现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
解决方案
您可以尝试将MaxModelValidationErrors
属性设置为 2。
当它为1时,遇到一个错误就会停止,并将Exception添加The maximum number of allowed model errors has been reached
到ModelState,它算作一个错误,无论错误来自built-in attributes
,或custom attributes
,或IValidatableObject
。所以你不能得到你自己的错误信息。这是设计使然。
推荐阅读
- firebase - firebase.auth.ApplicationVerifier 的实现
- selenium - Selenium - Edge (Chromium) 浏览器 - 设置默认下载路径的直接选项
- javascript - chrome扩展中的数据存储和检索
- python - 如何在 Python 中将兔子添加到数字中?
- javascript - Target. IE11 的最接近等效项
- android - React Native CameraRoll.getPhotos API 似乎没有返回
- python - 类型错误:update_purchases() 缺少 1 个必需的位置参数:'code'
- python - Pyspark:如何将每个字符串 ID 关联到一个整数?
- python - 使用 Keras 的 VAE 损失函数
- twisted.web - ImportError:没有名为 twisted.web 的模块