2011-06-28 3 views
7

J'ai une page qui appelle une autre page avec quelques paramètres de chaîne de requête. Je veux revenir à cette page après avoir cliqué sur un bouton.ASP.net Rediriger vers la page d'appel

Je dois mentionner que j'écris ce code dans un contrôle d'utilisateur et je ne sais pas quelle page a appelé cette deuxième page.

Y at-il quelque chose comme le bouton Retour dans les navigateurs?

Répondre

3

Vous pouvez regarder Cross Page Posting. Sinon, si vous générez le lien par programme, vous pouvez inclure returnUrl dans l'URL, par exemple. Vous pouvez ensuite lire ce paramètre de chaîne de requête dans la deuxième page et effectuer une redirection une fois votre travail terminé.

12

façon Simplest utiliser javascript côté client avec

window.back(); 

Pour côté serveur, vous devez enregistrer le referer url dans page_load:

if(!Page.IsPostback) 
{ 
    ViewState["GoBackTo"] = Request.UrlReferrer; 
} 

et sur un bouton clic en utilisant Response.Redirect:

Response.Redirect(ViewState["GoBackTo"].ToString()); 

éditer: s'il vous plaît noter le commentaire de ppumkin ci-dessous!

+0

le UrlReferrer est fonctionne pas tout le temps, comment jamais c'est une meilleure façon que le robert. – Aristos

+2

Non, il ne fonctionnera pas toujours s'ils viennent directement à la page. Attrapez-le simplement comme si (ViewState ["GoBackTo"] == null) 'et s'il y a null redirigez simplement vers la page de connexion par défaut comme' account.aspx' ou similaire. C'est bien si vous ne voulez pas utiliser les authentifications de formulaires +1 – ppumkin

2

Vous pouvez utiliser le Request.UrlReferrer, mais il est pas nécessairement envoyé par le client tout le temps:

 Response.Redirect(Request.UrlReferrer.AbsoluteUri); 
1

mettre cette ligne de code sur l'événement de chargement de la page

Btn_Back.Attributes.Add("onClick", "javascript:history.back(); return false;");