0

我目前使用万无一失的验证:

[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; }

但是它的编译器不同意这一点,那么 In 如何将两者结合起来呢?

提前致谢!

4

1 回答 1

2

Foolproof.RequiredIfNotAttribute派生自(Foolproof.ModelAwareValidationAttribute又派生自System.ComponentModel.DataAnnotation.ValidationAttribute)。ModelAwareValidationAttribute标有[AttributeUsage(AttributeTargets.Property)]参考源代码。默认情况下,AllowMultiple参数AttributeUsagefalse意味着您只能将属性应用于属性一次。您已尝试应用它 3 次,因此出现错误。

拥有它true并允许它被多次应用可能会导致设置不显眼验证所使用的$.validator.methods和函数时出现问题。$.validator.unobtrusive.adapters

您将需要使用其他一些验证属性或创建自己的ValidationAtribute实现IClientValidatable,或依赖服务器端验证。

于 2015-02-14T04:07:17.037 回答