Bonjour tout le monde,
Je suis un grand d�butant en Asp.Net MVC. Voici le contexte :
Voici mon code :J'ai un formulaire pour permettre � un nouvel utilisateur de s'enregistrer. Dans ce formulaire, j'ai un champs Login et un champs Email, qui doivent �tre uniques. Afin de pouvoir tester cela, j'ai cod� une classe h�rit�e de ValidationAttribute, et si la contrainte de validation fonctionne bien c�t� serveur (� la validation du formulaire), rien ne se passe c�t� client (la validation n'est pas active lorsque je saisis un email existant et que je clique sur un autre champs) !
et
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 public class UsersModel { [Required(ErrorMessage="Une adresse email valide est requise")] [RegularExpression("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?",ErrorMessage="L'email saisi ne respecte pas le format requis")] [SingleUser("Email", ErrorMessage="Un compte existe d�j� avec cet email. Merci d'en saisir un nouveau")] public string Email { get; set; } }
Quelqu'un saurait-il m'aiguiller vers un tutoriel traitant des ValidationAttribute c�t� client ? Car malgr� mes recherches, je ne suis tomb� que sur des r�ponses de forums (dont le plus pertinent selon moi ci-dessous) que je n'arrive pas � appliquer dans mon cas (certainement du � mon niveau).
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 public class SingleUser : ValidationAttribute { private string Field{get;set;} public SingleUser(string field) { Field = field; } public override bool IsValid(object value) { string procedureToExecute = String.Empty; if (string.IsNullOrEmpty((string)value)) { return false; } if (Field != "Email" && Field != "Login") { return false; } switch (Field) { case "Email": procedureToExecute = "dbo.BA_Users_GetUserByEmail"; break; case "Login": procedureToExecute = "dbo.BA_Users_GetUserByLogin"; break; } using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["BankAccount"].ConnectionString)) { sqlConnection.Open(); SqlCommand createUser = new SqlCommand(procedureToExecute, sqlConnection); createUser.CommandType = CommandType.StoredProcedure; createUser.Parameters.AddWithValue("@Value", value.ToString()); int result = (int)createUser.ExecuteScalar(); if (result >= 1) { return false; } return true; } } }
http://forums.asp.net/p/1559594/3873161.aspx
Je n'ai pas souhait� encombrer mon poste avec le code de la vue ou du controller, les validations required et regularexpression fonctionnant parfaitement c�t� client.
Comme je l'ai dit, je suis d�butant, donc si quelque chose dans mon code sans rapport avec les validationAttribute vous donne envie de vomir, je suis friand de toute suggestion d'am�lioration.
En vous remerciant par avance pour votre r�ponse.
Cordialement
Partager