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

时间:2012-01-02 05:29:44

标签: c# asp.net-mvc-3

我有一个带有属性的类,其中包含范围属性。

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

在任何时候和任何用户输入都受到尊重。

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

有可能吗?如果是这样的话?

2 个答案:

答案 0 :(得分:0)

这似乎是this question的副本,但也许我并不完全理解你的要求。

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

答案 1 :(得分:0)

我建议您创建System.ComponentModel.DataAnnotations.ValidationAttribute的派生类型。该实现可以类似于RangeAttribute类,并具有异常值的附加参数。

有关如何执行此操作的详细信息,请查看this MSDN article