miércoles, marzo 21, 2012

returnUrl en ASP.Net MVC

A veces, tenemos una página web (llamémosle X) que puede ser llamada desde varios sitios de la web (o desde uno, da igual) y nos interesa volver a la página llamadora después de hacer un post en la página X, tal como funciona por ejemplo la página de Login de ASP.Net.

Una forma de implementar esto es la siguiente:

  • En la vista de la página X, añadir un campo oculto, con id=returnUrl.
  • En la vista de las páginas, en los links que hagan referencia a la página X, añadir como parámetro "?returnUrl=" + Request.Url.AbsolutePath;
  • En el método httpPost del controller de la página X, incluir el parámetro returnUrl, y hacer al final hacer Redirect(returnUrl).
Y listo!