2010-12-02 9 views
0

Existe-t-il un moyen simple d'utiliser la validation côté serveur avec les contrôles de validation ASP.NET dans un formulaire affiché dans une boîte de dialogue modale? J'utilise jQuery et SimpleModal (en C#, VS2010, .NET 4.0)Utilisation de validateurs côté serveur avec boîte de dialogue modale (jquery)?

J'ai une forme modale qui fonctionne bien. Je dois utiliser une validation côté serveur car la logique dépend des données spécifiques à l'enregistrement en cours d'accès

Ma solution pour le projet sur lequel je travaille est maintenant d'utiliser un appel jQuery ajax pour passer toutes les données de formulaire à le serveur et récupérez les résultats de la validation avant d'autoriser la publication. Mais cela prend beaucoup de temps à mettre en œuvre, et dans certaines situations, je fais face maintenant tout le code de validation existe déjà.

Le premier défi est que bien sûr la boîte de dialogue modale se ferme sur une publication complète. Donc, vous pourriez mettre un UpdatePanel à l'intérieur de la boîte de dialogue ... sans même y penser trop, cependant, j'ai supposé que ça ne marcherait pas très bien. Ce n'est pas le cas. Et le formulaire qui ouvre le dialogue modal pour commencer est déjà dans un UpdatePanel, ce qui complique davantage les choses.

De toute façon, j'ai essayé de mettre le contenu de la forme modale dans un UpdatePanel pour le diable. Il fait effectivement une publication partielle, la boîte de dialogue reste ouverte, mais le contenu de la boîte de dialogue n'est pas mis à jour avec tout ce que je change côté serveur. Si je ferme et rouvre la boîte de dialogue sur la même page après avoir testé le code de validation, son contenu est en fait mis à jour pour refléter ces modifications. Évidemment, la façon dont la boîte de dialogue est restituée est source de confusion pour ASP.NET. Ou vice versa. Mais cela semble juste sommaire dès le départ. Plutôt que d'essayer de me frayer un chemin à travers ce problème, j'espérais que les autres avaient quelques suggestions sur une meilleure façon d'aborder cela. Ou dis-moi juste que j'essaye de mal mélanger des pommes et des oranges et que je devrais garder tout le côté client (ou côté client + ajax jQuery) si c'est la seule chose sensée à faire.

Répondre

0

Les deux approches que j'ai pris:

1) soumettre les données via ajax, la réponse comprend un succès: vrai ou faux. Si la valeur est false, un message contenant le problème est inclus.

2) soumettre le formulaire normalement. S'il y a un problème de validation, mais les erreurs dans un div caché sur la page et écrire JS pour vérifier le contenu dans ce div lorsque la page se charge et afficher l'avertissement/erreur si nécessaire.

Questions connexes