Название сказал все это.
Некоторый контекст:
У меня есть механизм поиска - представление поиска, представление результатов поиска и представление сведений (которое представляет один элемент результатов, например представление формы в веб-формах). Мне нужна ссылка в подробном представлении, которая вернула бы пользователя в представление результатов поиска.
Идеи
Просто прочитайте о TempData, но я думаю, что это не поможет, потому что пользователь может вызвать некоторые действия, прежде чем он захочет вернуться.
Сессия может работать, но я не уверен, как именно я должен с ней справиться.
Я не хочу использовать javascript для достижения этой цели.
Edit:
Кажется, я буду придерживаться решения eu-ge-ne. Вот результат:
#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);
}
}
}
}
Кстати, как работает метод .IsAjaxRequest ()? Он понимает только MS AJAX или умнее этого?