数据注释验证返回错误的结果

时间:2015-10-29 01:53:34

标签: c# .net validation data-annotations

这是我的整个计划。我希望它返回false,但结果是true。我是否期望错误的结果或我在这里做错了什么?

using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel.DataAnnotations;


public class Program
{
    public static void Main()
    {
        var c = new Ax(){Id = 1000, Name = "A"};
        //c.Name = null; // when un-comment this, result as expected  
        var context = new ValidationContext(c);
        var isValid = Validator.TryValidateObject(c, context, null);

        Console.WriteLine(isValid);
    }


    public class Ax  
    {
        [Range(1,100)] // I expect this to cause failed validation
        public int Id{get; set;}
        [Required]
        public string Name { get; set; } 
    }
}
  

结果:是真的

1 个答案:

答案 0 :(得分:1)

您正在使用此方法:

Response<LoginResponse> response2 = ...
  

method评估每个Validator.TryValidateObject(Object, ValidationContext, ICollection<ValidationResult>) 实例   附加到对象类型。它还检查每个属性是否   标记为RequiredAttribute。 它没有递归   验证对象的属性值。

您应该使用其他overload并将ValidationAttribute作为第三个参数传递:

true