Titel sagte alles.ASP.NET MVC wie Link implementieren, die zur vorherigen Seite zurückkehrt?
Einige Kontext:
Ich bekam einen Suchmechanismus - Suchansicht, Suchergebnisse Ansicht und eine Detailansicht (die ein Element der Ergebnisse darstellt, wie ein Formview in Webformulare). Ich möchte einen Link in der Detailansicht, der den Benutzer in die Suchergebnisansicht zurückversetzt.
Ideen:
Gerade über TempData lesen, aber ich denke, das würde einige Aktionen Ursache Benutzer nicht helfen, rufen könnte, bevor er zurückkehren will.
Sitzung könnte funktionieren, aber ich bin mir nicht sicher, wie genau ich damit umgehen sollte.
Ich möchte Javascript nicht verwenden, um dies zu erreichen.
Edit:
scheint, dass ich mit eu-ge-ne`s Lösung haftet. Hier ist Ergebnis:
#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);
}
}
}
}
Btw, wie funktioniert .IsAjaxRequest() Methode funktioniert? Es versteht nur MS AJAX oder es ist schlauer als das?
Sie mögen vielleicht erklären, dass Sie dies nicht tun will Javascript benutzen ... zumindest gehe ich davon aus, dass du nicht willst? –
Eigentlich sehe ich keinen Weg, wie Javascript helfen könnte. Auch wenn es möglich ist, bin ich vorsichtig gegen js, wenn es mit der Navigation zusammenhängt, weil Suchmaschinen js nicht verstehen. –
"Wie funktioniert die. IsAjaxRequest() -Methode?" - Es sucht nach "X-Requested-With" in der Anfrage. Sollte mit MSAjax und jQuery arbeiten. Sehen Sie sich ASP.NET MVC-Quelle -> AjaxRequestExtension.cs –