如何解决必需如果项目存在于数组中
我正在尝试创建一个自定义的 requiredIf 属性,该属性需要基于数组中存在的字段。数组是模型的一部分,如下面的示例模型所示,FamilyHistoryCustomerItem 有一个字符串类型的字段。
public class FamilyHistory {
[CanBeNull] public List<FamilyHistoryCustomerItem> FamilyHistoryCustomerItems { get; set; }
[requiredIfItemInCollection(FamilyHistoryCustomerItems,MedicalConditions.ColonorBowelCancer)]
public bool ColonorBowelImmediateFamilyHadColonCancerHnpccOrLynchSyndrome { get; set; }
}
这是我创建的一个简单的自定义属性,当我尝试传递数组时,该属性会抛出错误,因为数组未初始化。这甚至可能吗,这是我第一次使用这些,所以请对我放轻松:)
public class requiredIfItemInCollection : ValidationAttribute
{
private readonly string[] collection;
private readonly string item;
public requiredIfItemInCollection(string[] items,string item)
{
if (items.IsNullOrEmpty() || item.IsNullOrEmpty())
throw new ArgumentOutOfRangeException(nameof(items),"nothing was provided");
collection = items;
}
protected override ValidationResult IsValid(object value,ValidationContext validationContext)
{
return collection.Contains(item)
? ValidationResult.Success
: new ValidationResult(this.ErrorMessage);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。