2011-03-13 24 views
5

Me preguntaba cómo puedo encontrar la URL visitada anteriormente para una sesión.¿Quieres volver a la URL anterior?

Entonces, después de que un usuario hace algo, puedo redirigirlos a esa URL.

¿Hay alguna manera estándar de hacerlo? De lo contrario, agregaría algunas modificaciones a Global.asax y usaría una variable de sesión para almacenar el historial de URL.

Respuesta

5

Request.UrlReferrer podría ser lo que quieres, pero es posible que desee considerar el uso de AJAX o pasando la URL como parámetro ...

1

La respuesta anterior es totalmente correcta, aunque en algunos casos no se puede pasar la URL a lo largo de la cadena de consulta, por ejemplo, cuando la URL está enmascarada. En este caso, la forma correcta es Request.UrlReferrer. El problema con el uso de una variable de sesión es que puede caducar y provocar un comportamiento no confiable. O si tiene más de una sesión activa o servidores duplicados, no funcionará en absoluto.

En general, es una mala idea usar variables de sesión en MVC cuando se puede evitar. La solución que utilicé fue el uso de JavaScript para obtener la URL anterior y pasarla al modelo de vista.

+0

Esto no funcionará si el usuario tiene javascript deshabilitado. La codificación de URL tiene más sentido. – ashes999

+1

Oh, debería agregar que todo el sitio es dependiente de JavaScript en mi caso, y no permitirá que el usuario vea esta página sin JS habilitado, je – whoblitz

Cuestiones relacionadas