我有三个自定义验证属性:Req,FixedLen和Number。我编写了自定义验证属性,以便在每次使用它时都不会编写错误消息,因为我的网站是波斯语,我需要波斯语消息。这就是我在模型中使用它们的方式:
[Req]
[FixedLen(8)]
[Number]
public string phone { get; set; }
问题是即使第一个属性检测到其他两个属性被触发的数据有问题。因此,即使发布的数据为null,我的FixedLen属性也会调用isValid方法。我想要的是,在第一次验证失败时,此属性的验证会中断,我的下一个属性将被验证。
编辑:
public class ReqAttribute : ValidationAttribute
{
private string error_msg = "فیلد الزامی";
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value == null || value.ToString().Trim().Length == 0)
return new ValidationResult(error_msg);
return null;
}
}