ASP.NET MVC 3 Annotation de Données: Ajouter la validation dynamiquement
Je suis nouveau avec annotation de données. Je voudrais savoir si il possible (et comment) pour ajouter la validation de certains de façon dynamique. Elle est très longue à expliquer, mais j'ai un ViewModel qui reçoit et objet lors de sa création. Dans cet objet, je dois vérifier pour certains à la propriété et en fonction de sa valeur je doit avoir ou pas certaines validations.
Un exemple:
public class ProfileViewModel
{
[Required(ErrorMessage = "The field {0} is required")]
[Display(Name = "Client Code")]
public int ClientCode { get; set; }
[Required(ErrorMessage = "The field {0} is required")]
[StringLength(100, ErrorMessage = "The field {0} must have up to 100 characters.")]
[Display(Name = "Company")]
public string Company { get; set; }
[StringLength(50, ErrorMessage = "The field {0} must have up to 50 characters.")]
[Display(Name = "Name")]
public string Name { get; set; }
[StringLength(50, ErrorMessage = "The field {0} must have up to 50 characters.")]
[Display(Name = "LastName")]
public string LastName { get; set; }
public ProfileViewModel(User usr)
{
if (usuario.ClientCode != null)
{
ClientCode = Convert.ToInt32(usr.ClientCode);
}
else
{
//ClientCode and Company are not yet required.
//Name and LastName are now required.
}
Company = usr.Company;
Name = usr.Name;
LastName = usr.LastName;
}
}
Vous devez vous connecter pour publier un commentaire.
Je pense que la façon la plus simple de faire ce que je voulais est la mise en œuvre de
Ivalidatableobjet
:Voir aussi: Au Niveau de la classe de Validation du Modèle avec ... ASP.NET MVC 3
Personnalisé Attribut:
Personnalisé RequiredIfValidator
Registre personnalisé DataAnnotationsModelValidatorProvider
Utiliser cette CustomRequiredIf dans le ViewModel
Heres la mise à jour MVC 3 version de ce billet de blog http://blogs.msdn.com/b/simonince/archive/2011/02/04/conditional-validation-in-asp-net-mvc-3.aspx