加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 19:09:03 所属栏目:asp.Net 来源:网络整理
导读:给定以下对象, public class Question{ [Required] public string QuestionText { get; set; } [Range(1,5)] public int Difficulty { get; set; } } 具有以下验证代码 ICollectionValidationResult results = new ListValidationResult();Question questio
给定以下对象,
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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读