Jam*_*hes 41 asp.net-mvc data-annotations
鉴于以下对象,
public class Question
{
[Required]
public string QuestionText { get; set; }
[Range(1, 5)]
public int Difficulty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用以下验证码
ICollection<ValidationResult> results = new List<ValidationResult>();
Question question = new Question();
ValidationContext ctx = new ValidationContext(question, null, null);
Validator.TryValidateObject(question, ctx, results);
// results.Length = 1
Run Code Online (Sandbox Code Playgroud)
为什么Range属性在Required(值显然为0)时不会创建验证错误?
Jam*_*hes 69
啊所以看起来我需要指定validateAllProperties = true
Validator.TryValidateObject(question, ctx, results, true);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,让我失望的是我有一个抽象基类,其中包含另一个属性而没有validateAllProperties,Validator也会停止在所有超类的第一个错误上.所以你会得到每个超类的验证错误(在我的情况下是2)
Sma*_*kid 21
Validator.TryValidatorObject(instance, validationContext, validationResults)呼吁Validator.TryValidateObject(instance, validationContext, validationResults, validateAllProperties)有validateAllProperties = false.
当validateAllProperties是false,只有RequiredAttribute将被验证.
| 归档时间: |
|
| 查看次数: |
7403 次 |
| 最近记录: |