2009-07-31 8 views
0

J'ai une page avec plusieurs contrôles utilisateur qui utilisent Ajax. Lorsque j'essaye de faire un response.redirect à partir de cette page, Ajax piège l'appel et n'autorise pas la redirection. Comment faire une réponse.redirect à partir d'une page Ajax?Response.redirect ne fonctionne pas avec les contrôles Ajax

Merci ...

+3

http double: // stackoverflow .com/questions/1215177 /. –

Répondre

0

Comment contrôle sur les actions AJAX que vous avez dans les contrôles utilisateur? Si vous pouvez modifier le côté client, la chose la plus simple à faire est de retourner un objet JSON que vous pouvez analyser et envoyer l'URL que vous souhaitez rediriger en tant que données. Une fois que vous avez les données sur le client, réglez simplement window.location.href sur l'url.

Avec jQuery, il ressemblerait à quelque chose comme:

$.ajax({ 
    url: '/some/url', 
    dataType: 'json', 
    type: 'post', 
    data: $('form').serialize(), 
    success: function(data) { 
     if (data.Redirect) { 
      window.location.href = data.Redirect; 
     } 
     else { 
     ...handle other responses... 
     } 
    } 
    ... more options... 
}); 
+0

Tout mon code est en C#, ASP.NET 2.0. Je ne suis pas familier avec JSON. –

+0

Consultez cet article de blog sur la création de JSON avec JavaScriptSerializer: http://blogs.msdn.com/rakkimk/archive/2009/01/30/asp-net-json-serialization-and-deserialization.aspx. Vous avez juste besoin de définir l'objet que vous devez renvoyer et ensuite utiliser Response.Write sur la version sérialisée. – tvanfosson

0

comme je l'ai dit dans l'autre question:

Ajouter à votre web.config

<httpModules> 
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
</httpModules> 
+0

Ce code est déjà dans mon Web.config –

Questions connexes