2010-08-24 5 views
2

Scénario:Remet la connexion après simultanée AJAX et le formulaire type POST

  • propre roulé après jQuery Ajax pour valider un champ d'entrée sur Unfocus
  • bouton de soumission standard pour le post sur le formulaire

Si je provoquer la validation de tirer et attendre jusqu'à ce que je le vois complet dans firebug puis cliquez sur Enregistrer tout va bien. Cependant, si je laisse un changement dans un champ et que je clique ensuite directement sur le bouton Soumettre (de sorte que l'ajax et le post standard arrivent presque tous les deux), la requête se bloque dans le navigateur avant de renvoyer la connexion. Si je cours en débogage VS, je ne vois rien à moins que je ne sois en pause. Je suis alors présenté à la callstack suivante:

System.Web.dll!System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(byte[] buffer, int offset, int size) + 0x23 bytes
System.Web.dll!System.Web.Hosting.IIS7WorkerRequest.ReadEntityBody(byte[] buffer, int size) + 0x18 bytes
System.Web.dll!System.Web.HttpRequest.GetEntireRawContent() + 0x2d4 bytes
System.Web.dll!System.Web.HttpRequest.GetMultipartContent() + 0x45 bytes
System.Web.dll!System.Web.HttpRequest.FillInFormCollection() + 0xad bytes
System.Web.dll!System.Web.HttpRequest.Form.get() + 0x45 bytes
System.Web.dll!System.Web.HttpRequest.HasForm.get() + 0x46 bytes
System.Web.dll!System.Web.UI.Page.GetCollectionBasedOnMethod(bool dontReturnNull) + 0x62 bytes

Contexte:

ASP.NET 4 MVC 2 Application Web avec quelques pages WebForms héritées (la page impliquée à la fois le poste ajax et post norme est la même page webforms) fonctionnant localement sur Win7/IIS7.

Je pourrais potentiellement désactiver le bouton d'envoi pendant que la validation d'ajax se déclenche. Cependant, même si je fais cela, je suis intrigué de savoir ce qui a causé ce problème de demande en temps réel/concurrent.

+0

Veuillez poster du code en ce qui concerne le JQuery et le code derrière le bouton de soumission. – BinaryMisfit

Répondre

0

Pouvez-vous désactiver le post ajax, lorsque le clic se produit? de cette façon, vous devez vérifier les conditions dans l'événement click, avant de faire quoi que ce soit d'autre.