asp.net-mvc – Validator.TryValidateObject不验证RangeAttribute

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – Validator.TryValidateObject不验证RangeAttribute前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给定以下对象,
public class Question
{
    [required]
    public string QuestionText { get; set; }

    [Range(1,5)]
    public int Difficulty { get; set; }        
}

具有以下验证代码

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

为什么Range属性不会在需要时创建验证错误(值显然为0)?

解决方法

啊所以它似乎需要指定validateAllProperties = true
Validator.TryValidateObject(question,results,true);

顺便说一下,什么是扔我的事实,我有一个抽象基类与另一个属性,没有validateAllProperties验证器将停止对所有超类的第一个错误。所以你会得到一个验证错误每个超类(在我的case 2)

猜你在找的asp.Net相关文章