[英]Validation using data annotation depending on referenced class
我可以根据引用我的模型类的类使用不同的验证消息吗?
例如
public class AdviceUnit
{
public Client MainClient {get;set;}
public Client PartnerClient {get;set;}
public List<Investments> JointInvestments {get;set;}
}
public class Client
{
public Guid Id {get;set;}
[Required(ErrorMessage = "ERROR MESSAGE but a different ")]
public string FirstName {get;set;}
[Required(ErrorMessage = "client last name is missing")]
public string LastName {get;set;}
[Required(ErrorMessage = "client date of birth is missing")]
public DateTime DateOfBirth {get;set;}
}
我真正想要的是针对主要客户和合作伙伴客户的另一条验证错误消息。
例如
[Required(ErrorMessage = "main client first name is missing")]
[Required(ErrorMessage = "partner client first name is missing")]
我的视图绑定到AdviceUnit对象。
就像BDH所说的(对不起,我没有偷你的答案,功劳归功于BDH首先发布评论),您可以实现一个自定义的必需验证属性。
作为概念证明:
public string ClientType {get; set;}
public class CustomRequiredAttribute : RequiredAttribute { protected override ValidationResult IsValid (object value, ValidationContext validationContext) { var instance = validationContext.ObjectInstance; var instancePropertyValue = instance.GetType().GetProperty("ClientType").GetValue(instance, null); return new ValidationResult(ErrorMessage.Replace("[replaceText]" ,instancePropertyValue.ToString())); } }
[CustomRequired(ErrorMessage = "[replaceText] client first name is missing ")] public string FirstName {get;set;}
唯一需要注意的是,必须在发布/验证发生之前设置ClientType属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.