范围验证-对规则进行例外处理

本文关键字:处理 规则 验证 范围 | 更新日期: 2023-09-27 18:19:16

我有一个类的属性,它有一个范围属性。

        [Required]
        [Range(5, 9999)]
        public double Price { get; set; }

在任何时候和任何用户输入时都要遵守。

但是在一个特定的代码路径上,我正在自动化一些条目,我希望能够将Price设置为0。所以我想通过编程告诉这个模型类忽略这个要求。

有可能吗?如果有,那是怎么回事?

范围验证-对规则进行例外处理

这似乎是这个问题的重复,但也许我没有完全理解您的要求。

对于您的场景,我可能会尝试实现IValidatableObject接口,这样您就可以控制验证逻辑,而不是使用声明性验证模式。

我建议您创建一个System.ComponentModel.DataAnnotations.ValidationAttribute的派生类型。实现可以类似于RangeAttribute类,但附加了异常值参数。

请查看这篇MSDN文章,了解如何做到这一点。