J'ai une classe modèle "Pays" avec la propriété "CultureID" qui n'est pas marquée comme requis. Une autre classe "CountryviewModel" détient la même propriété "cultured".
Lorsque vous rendant la vue "Créer", j'ai remarqué que des attributs de données de validation ont été ajoutés à la zone de texte "cultureID", bien qu'il n'y ait pas d'annotations de données ajoutées. P >
J'utilise p> Qu'est-ce qui pourrait être la cause d'un tel comportement? p> merci p> p> P>
4 Réponses :
Si vous pouvez utiliser des annotations de données, vous devriez consulter ce http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.metadaTatypeattribute.aspx } p> Il vous aide à définir des validations sans modèles de la base de données. P> P>
Son problème ne concerne pas comment définir les besoins sur une propriété, mais comment éviter la validation HTML indésirable qu'il s'exécute. De plus, votre mode de gestion d'attribut est typique des données dynamiques, et non la façon dont MVC fonctionne habituellement
Je pensais que ce sera remplacé les règles de validation, si la classe de métadonnées sera vide
Je suppose que votre culture est un int. MVC ajoute automatiquement des balises obligatoires aux types de valeur non nullables.
Pour éteindre cette éteinte Ajouter P>
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Déjà ajouté que et toujours le même comportement. Je vais essayer de faire l'inflammable. Merci
Bonne réponse. Il fonctionne pour se débarrasser de la validation code> requise code>, mais puisque l'identifiant est un int code> il ajoute le numéro de données code> code> qui empêche toujours la soumission de formulaire lorsque vous essayez de créer. Je pourrais travailler autour de lui en définissant des valeurs par défaut comme 0, mais je ne devrais pas avoir à.
Mon mauvais - cela fonctionne comme la validation semble sauter data-val-numéro code> pour les entrées cachées
Essayez ceci: si cultureID est INT, il vous donnera également le résultat souhaité ... p> p>
Ceci est un peu d'un kilomége qui évite le problème réel impliqué ici. Voir le Réponse de DSKH pour plus de .
b). Utilisez la classe de contrôleur ci-dessous - P>
une). Rendre la propriété comme nullable comme ModelState["Age"].Errors.Clear();
L'option (b) résout-elle le comportement de validation côté client? Pas de droit, puisque vous nettoyez les erreurs sur le post-colonne?