Je suis un petit morceau dans MVC.I've un modèle:ASP.NET MVC ModelState IsValid - Comment exclure des propriétés spécifiques de la validation?
public class Usuarios
{
[Required(ErrorMessage = "**TxtOPID is required")]
public string TxtOpID
{
get { return this.txt_opId; }
set { this.txt_opId = value; }
}
[Required(ErrorMessage="**Password is required")]
public string TxtPassword
{
get { return this.txt_password; }
set { this.txt_password = value; }
}
[Required(ErrorMessage="**Email is required")]
[RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$",ErrorMessage="**Invalid email")]
public string TxtEmail
{
get { return this.txt_email; }
set { this.txt_email = value; }
}
}
Ceci est DataAnnotations et fonctionne très bien lorsque je tente de vérifier si toutes les propriétés sont valides avec ModelState.IsValid propriétée. Le problème est quand je ne veux pas vérifier toutes les propriétés.i.e: Si je veux vérifier seulement TxtOPID et TxtSenha propriété, comme dans un formulaire de connexion, où seulement OPID et mot de passe sont nécessaires.
Comment puis-je exclure la validation de la propriété Email dans une action spécifique dans un contrôleur?
J'ai essayé:
public ActionResult SignIn([Bind(Exclude="TxtEmail")]Usuarios usuario)
{
[...]
}
Mais il ne fonctionne pas, la cause toujours VALIDE, TxtEmail n'est pas nécessaire pour cette forme spécifique.
Un idéias?
mais, ces classes vont-elles répéter leurs propriétés? – ozsenegal
oui, ils peuvent ... par exemple. vous pouvez utiliser "email" dans 3 endroits différents. un pour un formulaire de contact, un pour un formulaire de connexion, un pour un gravatar. Vous devez créer 3 modèles (login, email, gravatar) et valider la propriété email sur chacun des modèles. –
ils peuvent, mais ce n'est pas recommandé dans OOP – ozsenegal