【问题标题】:Range validation - make exceptions to the rule范围验证 - 对规则进行例外处理
【发布时间】:2012-01-02 05:29:44
【问题描述】:

我有一个具有范围属性的类。

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

在任何时候和任何用户输入时都会尊重这一点。

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

有可能吗?如果有怎么办?

【问题讨论】:

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


【解决方案1】:

这似乎是 this question 的复制品,但也许我没有完全理解您的要求。

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

【讨论】:

  • 我在很多情况下不使用视图。有时这些模型是使用 API 或 Windows 服务等调用的。
【解决方案2】:

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

查看this MSDN article 了解如何执行此操作的详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-15
    • 2011-09-28
    • 1970-01-01
    • 2015-12-01
    • 2015-08-13
    • 2012-10-24
    • 2018-04-18
    • 1970-01-01
    相关资源
    最近更新 更多