/ / ASPNET MVC: Weg, um die Route des Referers (sic) herauszufinden? - asp.net-mvc, umleiten, routen, referer

ASPNET MVC: Weg, um die Route des Referer (sic) herauszufinden? - asp.net-mvc, Weiterleitung, Routing, Referer

Ich habe einige POST-Aktionen auf meinem Controller, die von zwei GET-Aktionen getroffen werden. Wenn die Überprüfung fehlschlägt, möchte ich die Ansicht der Aktion darstellen, von der der POST stammt. Zum Beispiel:

~ / accounts POSTs zu ~ / accounts / disable - "Index" -Ansicht bei Validierungsfehler darstellen ~ / accounts / profile POSTs in ~ / accounts / disable - "Profil" -Ansicht bei Validierungsfehler darstellen

Ich kann den Referer herausholenServervariablen und analysieren, um die Aktion herauszufinden, hoffte jedoch, dass entweder etwas eingebaut wurde, das tut, was ich will, oder jemand anderes hat dies bereits getan, aus dem ich die Krippe machen könnte.

Es scheint, dass die ControllerContext.RouteData-Eigenschaft nur Informationen über die aktuelle Anforderung enthält, nicht die verweisende (sic) -Anforderung ...?

Ich bin auf ASP.NET MVC Beta.

Antworten:

2 für die Antwort № 1

MVC Contrib enthält eine Erweiterungsmethode für String, um eine Route abzurufen (insbesondere hier drin). In der Theorie würde dies Sie tun lassen

RouteData referrer = Request.UrlReferrer.PathAndQuery.Route();

oder packen Sie das natürlich in eine Erweiterungsmethode auf HttpRequest ein, so dass Sie es einfach tun können

RouteData referrer = Request.ReferrerRoute();

Es ist jedoch für die Prüfung und Verwendung von Einheiten vorgesehenRhino dient zum Erstellen der HttpContextBase, die GetRouteData () benötigt. Die gute Nachricht ist, dass es anscheinend wenig Spott macht. Daher können Sie Rhino Mocks vermeiden, wenn Sie Ihre eigene, von HttpContextBase abgeleitete FakeHttpContext-Klasse erstellen.