[ASP MVC] ValidationAttribute c�t� client
Bonjour tout le monde,
Je suis un grand d�butant en Asp.Net MVC. Voici le contexte :
Citation:
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) !
Voici mon code :
Code:
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; }
} |
et
Code:
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;
}
}
} |
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).
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