Asp.net mvc 3 mvc3上的自定义范围验证程序

Asp.net mvc 3 mvc3上的自定义范围验证程序,asp.net-mvc-3,validation,range,customvalidator,Asp.net Mvc 3,Validation,Range,Customvalidator,我想做一个自定义范围验证器,但我不知道如何继续在这方面。 我需要范围验证器只有在布尔值保持为false时才处于活动状态,如果布尔值为true,则验证不应应用。类似于万无一失的验证要求 [RequiredIfFalse("UnEquip", ErrorMessage = "Le champ 'Nombre de salariés' doit être renseigné")] [Range(1, 1000000, ErrorMessage = "Le nombre de salar

我想做一个自定义范围验证器,但我不知道如何继续在这方面。 我需要范围验证器只有在布尔值保持为false时才处于活动状态,如果布尔值为true,则验证不应应用。类似于万无一失的验证要求

[RequiredIfFalse("UnEquip", ErrorMessage = "Le champ 'Nombre de salariés' doit être     renseigné")]
    [Range(1, 1000000, ErrorMessage = "Le nombre de salariés doit être compris entre 1 et 1000000")]
    public int Salaries { get; set; }
类似这样,但结合了这两种类型的验证

[RequiredIfFalse("UnEquip", ErrorMessage = "Le champ 'Nombre de salariés' doit être     renseigné")]
    [Range(1, 1000000, ErrorMessage = "Le nombre de salariés doit être compris entre 1 et 1000000")]
    public int Salaries { get; set; }

提前感谢

您需要在模型级别执行此验证,因为它同时包含多个属性。检查此链接,以了解类似问题:


在您的情况下,
Validate
将测试您的布尔值和
Salaries
值,如果
false
Salaries>1000000
Salaries<1
,您将返回一个新的
ValidationResult
,其中包含错误消息。

您的布尔值是来自另一个属性还是使用自定义RangeAttribute定义的常量?布尔值在模型中,它是视图上的复选框。谢谢,它的工作原理几乎像一个符咒。但我有一个小问题,当验证消息应该弹出。只有在没有自定义验证的字段上没有其他验证错误时,它才会弹出。我使用的是验证摘要,JQuery.validation.js是否需要在validation.js上添加一些修改,以便同时显示所有错误消息?我怀疑您的其他验证错误是由客户端触发的。不幸的是,模型级别的验证只在服务器端起作用。它在将来可能会改变,但现在它是如何工作的:/所以我应该禁用客户端验证,或者找到另一种验证方法?我应该搜索如何关闭客户端验证并对此进行测试即使客户端验证已关闭,问题仍然存在。您能告诉我们如何在模型上定义其他验证规则吗?