public class {userModel [Obligatoire (ErrorMessage = "Le nom est Requis.")] [UIHint ("String")] [DataType (DataType .Text)] [DisplayName ("Nom")] public string Nom de famille {get; ensemble; }Comment puis-je valider un modèle complexe en utilisant ASP.NET MVC 2
[DataType(DataType.Text)]
[UIHint("String")]
[DisplayName("Prénom")]
public string Firstname { get; set; }
[Required(ErrorMessage="La spécialité principale est requise.")]
[DisplayName("Spécialité principale")]
public Speciality PrimarySpeciality { get; set; }
[DisplayName("Spécialité secondaire")]
public Speciality SecondarySpeciality { get; set; }
}
public class SpecialityModel
{
[Required(ErrorMessage = "La spécialité est requise.")]
public int Id { get; set; }
public string Name { get; set; }
}
Comment la spécialité principale peut-elle être requise et non la seconde? Il semble que l'attribut Required ne vérifie que nullable mais Specialty n'est jamais nul.
Edit:
Après avoir lu ce post http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html je suis reformulant ma question: Comment puis-je empêcher la validation sous des propriétés se produire avant que l'objet principal. Comme vous pouvez le voir, SecondarySpeciality n'est pas requis, mais obtient toujours la cause validée de DataAnnotation dans la classe Address. Je pense que mvc2 ne peut pas fonctionner avec la validation du modèle. Dois-je aller avec un modèle uni? (ce qui signifie beaucoup plus de correspondance mais si c'est le travail ...)
Il semble que le problème est plus sur la façon dont la validation est INTERVENUES. Voir http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html – mateo