我目前使用万无一失的验证:
[RequiredIfNot("type", 3, ErrorMessage = "Please enter at least one value")]
public int[] audites { get; set; }
但客户想要添加验证:
[RequiredIfNot("type", 3, ErrorMessage = "Please enter at least one value")]
[RequiredIfNot("nature", 1, ErrorMessage = "Please enter at least one value")]
[RequiredIfNot("nature", 3, ErrorMessage = "Please enter at least one value")]
public int[] audites { get; set; }
但是编译器不同意这一点,那么如何将两者结合起来呢?
提前致谢!
答案 0 :(得分:2)
Foolproof.RequiredIfNotAttribute
派生自Foolproof.ModelAwareValidationAttribute
(后者又来自System.ComponentModel.DataAnnotation.ValidationAttribute
)。 ModelAwareValidationAttribute
标有[AttributeUsage(AttributeTargets.Property)]
。 Refer source code。默认情况下,AllowMultiple
的{{1}}参数为AttributeUsage
,这意味着您只能将属性应用于属性一次。您已尝试将其应用3次,因此出错。
拥有false
并允许多次应用可能会导致设置由不引人注意的验证使用的true
和$.validator.methods
函数时出现问题。
您需要使用其他一些验证属性或创建自己的$.validator.unobtrusive.adapters
来实现ValidationAtribute
,或者依赖服务器端验证。