2010-07-16 4 views
5

Je reçois l'erreur suivante lorsque je laisse mon site Web inactif pendant un certain tempsLa redirection de réponse ne peut pas être appelée dans le rappel de page?

"Response.Redirect.Ne peut pas être appelé dans un rappel de page."

Je stocke les ID utilisateur en session et pendant le chargement de la page, je vérifie pour voir si l'ID de l'utilisateur existe sinon je les redirige vers la page de connexion. J'utilise les contrôles devexpress, comment puis-je faire fonctionner la redirection?

+1

double possible http: // stackoverflow.com/questions/1538749/how-to-avoid-response-redirect-cannot-be-called-in-a-page-callback –

+0

@Lucas - I don Je ne le pense pas. Ce questionneur voulait juste arrêter l'erreur et était content d'utiliser 'if (! Page.IsCallback)' je pense @Kyle veut un moyen de rediriger l'utilisateur vers la page de connexion si leur session a expiré. –

Répondre

1

Vous ne pouvez pas faire en sorte que la redirection fonctionne dans un rappel. Peut-être au lieu de faire Response.Redirect sur le serveur, vous pouvez écrire une valeur dans un bloc <script type="text/javascript"/> et définir le window.location.href (redirection) sur le côté client?

2

Vous pouvez généralement désactiver les rappels pour les contrôles devexpress comme ASPxGridView à l'aide de la propriété "EnableCallbacks". Cela entraînera évidemment l'utilisation des contrôles par les contrôles, mais permettra également à Response.Redirect de faire son travail.

2

HttpResponse.RedirectLocation propriété sur MSDN fonctionne pour moi même problème

1

Vous pouvez utiliser:

string TARGET_URL = ...; 
if(Page.IsCallback) 
    DevExpress.Web.ASPxClasses.ASPxWebControl.RedirectOnCallback(TARGET_URL); 
else 
    Response.Redirect(TARGET_URL); 

Référez à KA18851 à DevExpress

Questions connexes