C# 范围验证-对规则进行例外

C# 范围验证-对规则进行例外,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有一个类,它的属性上有一个范围属性 [Required] [Range(5, 9999)] public double Price { get; set; } 在任何时候和任何用户输入上都受到尊重 但是在一个特定的代码路径上,我将自动执行一些条目,我希望能够将价格设置为0。所以我想通过编程告诉这个模型类忽略这个需求 可能吗?如果是这样的话,怎么办?这看起来像是复制品,但可能我没有完全理解您的要求 对于您的场景,我可能会尝试实现IValidata

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

        [Required]
        [Range(5, 9999)]
        public double Price { get; set; }
在任何时候和任何用户输入上都受到尊重

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


可能吗?如果是这样的话,怎么办?

这看起来像是复制品,但可能我没有完全理解您的要求


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

这似乎是重复的,但可能我没有完全理解您的需求


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

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


查看有关如何执行此操作的详细信息。

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


查看有关如何执行此操作的详细信息。

您是否应该使用double来表示似乎是货币价值的值?好问题。。。你通常用什么?在sql server和.net?Decimal中,您是否应该使用double来表示似乎是货币值的值?好问题。。。你通常用什么?在sql server和.net?Decimal中,我在许多情况下不使用视图。有时,这些模型是使用API或windows服务等进行调用的。在许多情况下,我不使用视图。有时,这些模型是使用API或windows服务等进行调用的。