Conditionnelle de Validation asp.net MVC4
Je veux être en mesure de lancer certaines fonctions de validation basé sur ce contrôleur de vue est appelé à partir de... je vais mettre une variable dans le ViewState, ou quelque chose qui va m'aider à savoir ce que le contrôleur de ce point de vue a été appelé à partir.
En d'autres termes, je veux la validation d'être nécessaires si une variable est définie... Voici comment je l'utilise pour faire dans MVC2 quand je viens de mettre Jquery dans mon code...
HospitalFinNumber: {
required: function (element) {
debugger;
return '@isFlagSet' != 'True';
},
minlength: 6,
remote: function () {
//debugger;
return {
url: '@Url.Action("ValidateHosFin", "EditEncounter")',
data: { hospitalFin: $('#HospitalFinNumber').val(), encflag: '@encflag' }
};
}
}
Vous voyez ce que je suis en train de faire là. Cette validation ne serait nécessaire que si une variable est définie... Dans ce cas, la variable isFlagSet... que je ne puis définir min Longueur et d'appeler une fonction à distance pour s'assurer que la valeur est unique.
Je ne veux pas le faire dans tous les cas.
De tout ce que j'ai lu jusqu'à présent, il n'y a pas de moyen pour accomplir cela en utilisant unobrtusive ajax? Je suis mal, est-il possible que vous pouvez faire cela? Si non, comment puis-je juste place régulière vieux jquery de validation dans mon code?
OriginalL'auteur SoftwareSavant | 2012-10-11
Vous devez vous connecter pour publier un commentaire.
ASP.NET MVC 3 utilise jquery discrète validation à effectuer la validation côté client. Donc, vous pouvez soit écrire un custom
RequiredIf
validation de l'attribut ou d'utiliser celui fourni dans Mvc À Toute Épreuve De Validation et puis:Puis tout ce qui reste est d'inclure le
jquery.validate.js
etjquery.validate.unobtrusive.js
scripts ou utilisez le raccourci bundle ASP.NET MVC 4 qui les inclut.Je dois ajouter ici, que toute épreuve a toujours pas de Cadre de l'Entité de soutien! Si vous vous demandez pourquoi vous obtenez une "Pas de mise en œuvre de l'Exception" sur db.SaveChanges(); vous pourriez vous sentir comme moi et que vous devez réaliser que ce n'est pas codé pourtant... voir aussi: foolproof.codeplex.com/workitem/18457
Dimitrov, Il ne fonctionne pas sur MVC 4 bcos il n'a pas d'appel RequiredIfValidator
Oui, d'autant que j'ai essayé à toute épreuve qui semble ne pas travailler sur MVC4? Une idée?
OriginalL'auteur Darin Dimitrov
Une autre solution proposée par Andy Ouest sur son blog est à Conditionnellement Supprimer des Champs à partir du Modèle de l'État dans le Contrôleur:
Lorsque le formulaire est affiché, supprimer les champs à partir du modèle de l'état de sorte qu'ils ne sont pas validés:
Qui a fonctionné pour moi.
C'est bien beau, mais le Javascript de validation encore des coups de pied dans, qui garde la forme de l'affichage et n'atteint jamais le contrôleur. Dans ma situation, c'était de savoir si le pays dans un formulaire d'inscription est "USA" puis valider le Zip comme 5 ou 5+4 format. Si ce n'est pas les etats-unis, puis de les ignorer de validation pour un champ. Il semble que ce serait une fonctionnalité commune avec pas de bonne solution qui peut être trouvé. en plus de contrôleur de la validation côté avec un tas de javascript qui supprime ou ajoute le dos de la validation des données d'attributs, ce qui est cludgy.
OriginalL'auteur Pierre