Título lo dijo todo.ASP.NET MVC ¿cómo implementar el enlace que regresa a la página anterior?
un poco de contexto:
Tengo un mecanismo de búsqueda - Buscar en la vista, los resultados de búsqueda de vista y una vista de detalles (lo que representa un elemento de los resultados, como un formview en formularios web). Quiero un enlace en la vista de detalles, que devolvería al usuario la vista de resultados de búsqueda.
ideas:
Sólo leen sobre TempData, pero supongo que eso no ayudaría, porque el usuario podría llamar algunas acciones antes de que él quiere volver.
La sesión puede funcionar, pero no estoy seguro de cómo exactamente debo manejarla.
No quiero usar javascript para lograr esto.
Editar:
Parece que me quedo con solución eu-ge-ne`s. Aquí está el resultado:
#region usages
using System.Web.Mvc;
using CompanyName.UI.UIApp.Infrastructure.Enums;
#endregion
namespace CompanyName.UI.UIApp.Infrastructure.Filters
{
/// <summary>
/// Apply on action method to store URL of request in session
/// </summary>
public class RememberUrlAttribute : ActionFilterAttribute
{
public override void OnActionExecuting
(ActionExecutingContext filterContext)
{
var httpContext = filterContext.HttpContext;
if (httpContext.Request.RequestType == "GET"
&& !httpContext.Request.IsAjaxRequest())
{
SessionManager
.Save(SessionKey.PreviousUrl,
SessionManager.Get(SessionKey.CurrentUrl) ??
httpContext.Request.Url);
SessionManager
.Save(SessionKey.CurrentUrl,
httpContext.Request.Url);
}
}
}
}
Por cierto, ¿cómo funciona el método .IsAjaxRequest()? ¿Entiende solo MS AJAX o es más inteligente que eso?
Es posible que desee explicar que no lo hace quiero usar javascript ... al menos estoy asumiendo que no quieres? –
En realidad, no veo la forma en que JavaScript podría ayudar. Incluso podría, soy cauteloso contra js si está relacionado con la navegación porque los motores de búsqueda no entienden js. –
"¿Cómo funciona el método .IsAjaxRequest()?" - Busca "X-Solicitado-Con" en la solicitud. Debería funcionar con MSAjax y jQuery. Mire la fuente de ASP.NET MVC -> AjaxRequestExtension.cs –