2010-09-13 4 views
2

Disons que j'ai un modèle qui ressemble à ceci:ASP.NET mvc 2 - Comment ajouter un champ "confirmer votre adresse e-mail"?

public class MyModel 
{ 
    [DisplayName("Email:")] 
    [Required(ErrorMessage = "Email is required")] 
    [Email(ErrorMessage = "Email is invalid")] 
    public string Email { get; set; } 
} 

Dans ASP.NET MVC 2, je rends la zone de texte et la validation comme ceci:

<%=Html.LabelFor(x => x.Email)%> 
<%=Html.TextBoxFor(x => x.Email)%> 
<%=Html.ValidationMessageFor(x => x.Email)%> 

Comment puis-je ajouter un deuxième champ pour permettre à l'utilisateur de confirmer son adresse email en utilisant le nom d'affichage et la validation de la propriété du modèle?

Répondre

5

décorez votre classe avec l'attribut suivant:

[PropertiesMustMatch("Email", "ConfirmEmail", ErrorMessage = "The Email Address and confirmation Email Address do not match.")] 
    public class MyModel 
    { 
     [DisplayName("Email:")] 
     [Required(ErrorMessage = "Email is required")] 
     [Email(ErrorMessage = "Email is invalid")] 
     public string Email { get; set; } 

     [DisplayName("Confrim Email:")] 
     [Required(ErrorMessage = "Email is required")] 
     [Email(ErrorMessage = "Email is invalid")] 
     public string ConfirmEmail { get; set; } 
    } 
+0

Et où est-ce message de validation apparaissent dans la vue? Je n'utilise pas Html.ValidationSummary n'importe où sur la page ... – Chris

+0

Jetez un oeil à: ModelState.AddModelError, là vous pouvez ajouter des messages d'erreur, je crois qu'il ressemblera à quelque chose comme ceci: ModelState.AddModelError ("ConfirmEmail", " Ne correspond pas"); –