2009-01-05 8 views
0

J'utilise:méthode ajax

[ajax.ajaxmethod()] 
public void fnName() 

contenant:

response.redirect("sample.aspx"); 

ou:

server.transfer("sample.aspx"); 

les deux ne fonctionnent pas ... quelle est la solution?

dans ce bloc, j'ai essayé d'appeler la fonction javascript comme

scriptmanager.registerstartupscript(page,gettype(),"sample","javascriptfunction()",true); 

il est également ne fonctionne pas ..

Répondre

0

Vous devez fournir de façon plus détaillée, mais je vais devinent que vous attendez votre requête ajax pour devenir rediriger la page? Cela ne marchera jamais - au mieux, la requête ajax elle-même sera redirigée vers votre nouveau contenu.

Vous avez besoin de la réponse ajax pour fournir l'URL vers laquelle vous souhaitez rediriger, et le frontal pour comprendre le format de cette réponse (parce que c'est juste une chaîne sinon) et agir dessus (par exemple document.location = foo) . c'est-à-dire que la redirection devra se faire du côté client.

Bien sûr, vous pourriez demander quelque chose de complètement différent.

1

Je ne sais pas comment vous faites cela avec ASP.NET AJAX, mais dans Ra-Ajax vous utiliseriez quelque chose comme ceci;

AjaxManager.Instance.WriterAtBack.Write("window.location='foo.aspx';"); 

Je pense que aussi ASP.NET AJAX ont une sorte de méthode pour ajouter JavaScript retour à Ajax comme Ra-Callbacks Ajax et que vous ne pouvez l'utiliser pour ajouter un window.location redirect ...

Il n'y a pas d'autre façon de le faire que je suis au courant ...

Cependant, pour Ra-Ajax il y a aussi une version « raccourci » pour redirigeant qui se trouve ici; AjaxManager.Instance.Redirect

Je serais surpris si pas aussi ASP.NET AJAX ont quelque chose de similaire ...

1

Je suppose que le problème est que vous essayez d'exécuter du code côté serveur (C#) au côté client. Comme Thomas a répondu, l'équivalent Javascript de response.redirect ("foo.aspx") ou server.transfer ("foo.aspx") est window.location = 'foo.aspx'.

Questions connexes