2011-06-28 23 views
7

tengo una página que llama a otra página con algunos parámetros de cadena de consulta. Quiero volver a esa página después de hacer clic en un botón.ASP.net redirigir a la página de llamada

Tengo que mencionar que escribo ese código en un control de usuario y no sé qué página llamó esa segunda página.

¿Existe algo así como el botón Atrás en los navegadores?

Respuesta

3

Usted podría mirar Cross Page Posting.

Alternativamente, si está generando el enlace de manera programática, puede incluir la URL de retorno en la url, p. http://localhost/secondpage.aspx?returnurl=firstpage.aspx

A continuación, puede leer este parámetro de cadena de consulta en la segunda página y realizar el redireccionamiento una vez que haya finalizado su trabajo.

12

manera más simple usar javascript en el lado del cliente con

window.back(); 

Por el lado del servidor es necesario guardar el árbitro url en Page_Load:

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

y en un botón de clic mediante Response.Redirect:

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

edición: tenga en cuenta el comentario de ppumkin abajo!

+0

la UrlReferrer no es el trabajo todo el tiempo, cómo cada vez esta es una manera mejor que la de Robert. – Aristos

+2

ningún no siempre funciona si vienen directo a la página. Simplemente compruébalo como 'if (ViewState [" GoBackTo "] == null)' y si hay un nulo simplemente redirige a la página de inicio de sesión predeterminada como 'account.aspx' o similar. Esto es bueno si no quieres usar autenticación de formularios +1 – ppumkin

2

Puede utilizar el Request.UrlReferrer, pero no es necesariamente enviada desde el cliente todo el tiempo:

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

poner esta línea de código en el evento de carga de la página

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