Nehmen wir an, ich habe einige Seiten
some.web/articles/details/5
some.web/users/info/bob
some.web/foo/bar/7
das kann einen gängigen Utility-Controller wie nennen
locale/change/es
oder authorization/login
Wie bekomme ich diese Methoden ( change
, login
) zu den bisherigen Maßnahmen zur Umleitung ( details
, info
, bar
) , während die bisherigen Parameter ihnen vorbei ( 5
, bob
, 7
)?
Kurz gesagt: Wie leite ich zu der Seite um, die ich gerade besucht habe, nachdem ich eine Aktion in einem anderen Controller ausgeführt habe?
asp.net-mvc
routing
redirect
adolfojp
quelle
quelle
Request.Url.AbsolutePath.ToString()
als dieAccountController
‚s -LogOn
Methode enthält Kontrollen für URLs Anfang mit'/'
etc.GET Index
dann eingeschaltetGET Edit
. Die verweisende URL ist dannIndex
aber dann, wenn der Benutzer dies tut, stammtPOST Edit
der Verweis jetztEdit
von der vorhergehenden GET-Anfrage. Wie kann ich sicherstellen,POST Edit
dass die URL bekannt ist, auf die der Benutzer verwiesen hatGET Edit
?Wenn Sie von einer Schaltfläche in der Ansicht umleiten möchten, können Sie Folgendes verwenden:
quelle
Wenn Sie sich nicht mit Unit-Tests beschäftigen, können Sie einfach schreiben:
quelle
Ein Vorschlag, wie dies zu tun ist, so dass:
.
Sie können die Umleitung in der Ansicht folgendermaßen verwenden:
quelle
In Mvc mit einfachem HTML in View Page mit Java-Skript onclick
Das funktioniert super. Hoffnung hilft jemandem.
@JuanPieterse hat bereits mit geantwortet,
@Html.ActionLink
sodass wenn möglich jemand mit kommentieren oder antworten kann@Url.Action
quelle
Übergeben Sie einen returnUrl Parameter (URL - kodiert) an die Änderung und Login Aktionen und innerhalb Umleitung zu dieser gegebenen returnUrl. Ihre Anmeldeaktion könnte ungefähr so aussehen:
quelle
Ich verwende .Net Core 2 MVC, und dieses hat bei der Verwendung des Controllers für mich funktioniert
HttpContext.Request.Headers["Referer"];
quelle
Sie können mithilfe der
ViewBag.ReturnUrl
Eigenschaft zur vorherigen Seite zurückkehren .quelle
Versuchen Sie Folgendes, um die returnUrl in einer beliebigen Ansicht dynamisch zu erstellen:
Verwandte: MVC3 Dynamic Return URL (Gleiche, jedoch innerhalb eines Controllers / einer Aktion)
quelle
Für ASP.NET Core Sie können das Attribut asp-route- * verwenden:
Weitere Details im Detail: Stellen Sie sich vor, Sie haben einen Fahrzeugcontroller mit Aktionen
Index
Einzelheiten
Bearbeiten
Sie können jedes Fahrzeug über den Index oder über Details bearbeiten. Wenn Sie also auf Bearbeiten aus Index klicken, müssen Sie nach der Bearbeitung zum Index zurückkehren. Wenn Sie auf Details bearbeiten klicken, müssen Sie nach der Bearbeitung zu den Details zurückkehren.
In Ihrem Controller:
quelle