DataAnnotation比较两个属性

在允许发布表单之前,有没有办法使用数据注释来比较两个表单字段(例如确认电子邮件地址)是否相同?

例如。 正则表达式数据注释可以使用匹配函数来引用ViewModel中的另一个属性吗?

使用CompareAttribute

public string EmailAddress {get; set;} [CompareAttribute("EmailAddress", ErrorMessage = "Emails mismatch")] public string VerifiedEmailAddress { get; set; } 

作为一个可能的选项自我validation

使用方法Validate实现接口IValidatableObject ,您可以在其中放置validation代码。

 public class TestModel : IValidatableObject { public string Email{ get; set; } public string ConfirmEmail { get; set; } public IEnumerable Validate(ValidationContext validationContext) { if (Email != ConfirmEmail) { yield return new ValidationResult("Emails mismatch", new [] { "ConfirmEmail" }); } } } 

请注意:这只是服务器端validation。