DataAnnotations - Validator.TryValidateObject在未指定错误消息时不验证

时间:2012-11-29 17:14:47

标签: c# asp.net-mvc validation data-annotations

我刚刚编写了一个扩展方法来提供DataContracts的验证,然后再将它们通过电线连接到我的API。

扩展方法是:

    public static bool IsValid(this object obj, out List<ValidationResult> validations)
    {
        ValidationContext context = new ValidationContext(obj, null, null);
        validations = new List<ValidationResult>();
        return Validator.TryValidateObject(obj, context, validations, true);
    }

为简洁起见,我只会在我正在验证的对象上列出一个属性:

    [Required]
    [Display(Name = "X coordinate")]
    [Range(-50, 50)]
    [DataMember(IsRequired=true)]
    public int XCo { get; set; }

如果将此属性设置为51并对其进行验证,则返回true!

    [Required]
    [Display(Name = "X coordinate")]
    [Range(-50, 50, ErrorMessage="Xco outside accepted range")]
    [DataMember(IsRequired=true)]
    public int XCo { get; set; }

如果将此属性设置为51并对其进行验证,则返回false!

即使使用null ErrorMessage,我也不希望Validator在无效对象上返回true,因为没有设置用户提供的字符串属性。

是否有人知道是否有办法将此配置为正确验证,即使未设置错误消息属性?

我知道这不一定是一个好的解决方案,因为良好的错误报告显然非常有用,但我宁愿这个过程是以数据为中心的。

0 个答案:

没有答案