2010-01-26 5 views
3

Je suis dans une situation où j'utilise actuellement Jquery SimpleModal pour faire diverses boîtes de dialogue sur mon site comme par exemple la boîte de dialogue d'ouverture de session. Je fais également une aide Ajax.BeginForm.ASP.NET MVC avec jQuery SimpleModal et Ajax.BeginForm Helper

Maintenant, tout fonctionne très bien et tout, mais ce que je dois savoir est ce que dois-je faire pour dire à proximité modal lorsque l'utilisateur a été sucessful à l'exploitation forestière dans ..

J'ai essayé quelques petites choses comme la mise en une valeur de tempdata etc .. et puis en vérifiant cela pour fermer le modal via jquery ou en faisant simplement un windows.location pour faire une redirection ... qui alors le modal disparaitrait.

Si je fais simplement un redirectoAction il remplit le contenu de l'action redirigée à l'intérieur du modal dans ce cas, quelle que soit l'URL à partir de laquelle ils reviennent.

Merci pour l'aide .. beaucoup abligé. Je l'ai eu pour qu'il ferme le modal en cas de succès, mais ce qui me pose problème maintenant, c'est quand un utilisateur frappe simplement soumettre sans entrer quoi que ce soit la validation côté client ne fonctionne pas et le l'utilisateur est redirigé vers la vue qui compose ce modal mais sans le modal .. donc en gros c'est juste la vue sans le reste du site.

Des idées sur la façon de les garder à ce modal jusqu'à ce que les informations correctes soient saisies?

+2

Il serait probablement plus facile si vous restiez dans un framework JS; Si vous faites votre connexion Ajax dans jQuery au lieu d'utiliser les Extensions Ajax, vous pouvez facilement connecter un rappel à la connexion et faire en sorte que le rappel cache/supprime la boîte de dialogue, ou simplement redirige. – Aaronaught

+0

Lorsque vous dites que la validation côté client ne fonctionne pas, que se passe-t-il? – Fermin

+0

Il ne fait pas ce qu'il doit faire, fondamentalement le validateur laisse simplement passer le formulaire. Ce même validateur fonctionne dans d'autres endroits, donc je sais qu'il n'y a rien de mal à ça. – dswatik

Répondre

1

ne pouvez-vous pas le fermer manuellement?

suppose que votre modal est dans un iframe, faire

$('#modal',top.document).remove() 
2

Je suis d'accord avec le commentaire précédent qu'il serait plus simple à utiliser Jquery tout au long.

Je crois que la meilleure façon de réaliser ce que vous recherchez serait de mettre en place une fonction de dialogue proche du OnSuccess de l'AjaxForm.

<% using(Ajax.BeginForm("UpdateForm", 
     new AjaxOptions{OnSuccess="CloseModal()"})) { %> 

Pour fermer modal simple, vous pouvez appeler

function CloseModal() { $.modal.close(); } 

Hope this helps.