我的实体设置为 Data Annotation验证属性,我正在尝试使用静态 Validator 对其进行验证类,但我得到不同的异常,这不是正确的方法吗:
string _ValidateProperty(object instance, string propertyName)
{
var validationContext = new ValidationContext(instance, null, null);
validationContext.MemberName = propertyName;
var validationResults = new List<ValidationResult>();
var isValid = Validator.TryValidateProperty(instance, validationContext, validationResults);
if (isValid)
return string.Empty;
return validationResults.FirstOrDefault<ValidationResult>().ErrorMessage;
}
最佳答案
您还没有说明您收到的是什么Exception
,但看起来您正在将您的实例传递给TryValidateProperty
方法,而您应该传递值 特定属性。
代替
Validator.TryValidateProperty(instance, validationContext, validationResults);
尝试
Validator.TryValidateProperty(propertyValue, validationContext, validationResults);
你必须将 propertyValue
传递给你的方法(或使用反射,这会更慢)
例如
_ValidateProperty(someObject, "Field1", someObject.Field1);
关于c# - 使用 System.ComponentModel.DataAnnotations.Validator 验证属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16781621/