2017-09-14 52 views
0

我有,我想一些验证规则适用于类的属性。跨多个属性的类级验证规则

我想创建一个自定义的验证是: - 检查是否数量和/或地址存在 - 如果既不存在则返回“这是必须的”

目前我留言有:

[CustomValidation(typeof(Course), "NumberOrAddressValidator")] 
public class Information { 
    public string Number { get; set; } 
    public string Address { get; set; } 
} 
public static ValidationResult PhoneOrWebAddressRequiredValidator(string name, ValidationContext context) 
     { 
      if (Course.WebAddress == null) 
      { 
       return "Phone or web address is required"; 
      } 
      else if(Course.PhoneNumber == null) 
      { 
       return "Phone or web address is required"; 
      } 
      else 
      { 
       return ValidationResult.Success; 
      } 

     } 

我在想这个正确?我停留在理解什么是“回归ValidationResult.Success”究竟一点。它是目前在返回一个字符串(我要回消息)抛出一个错误。

任何提示和帮助,将不胜感激!

回答

0

按我的理解,你应该去表现的注释,而不是使自定义验证。由PMC运行

PM>安装,包装ExpressiveAnnotations -Version 2.9.5

您的代码看起来像安装NuGet包。

public class Information 
{ 
    [RequiredIf("Address==null", ErrorMessage = "Number or Address is Required")] 
    public string Number { get; set; } 
    [RequiredIf("Number==null", ErrorMessage = "Number or Address is Required")] 
    public string Address { get; set; } 
} 
+0

感谢@shahid但在这个例子中,我想,因为我练的是使用自定义的验证。 – William