Załóżmy, że mam kilka stron
some.web/articles/details/5
some.web/users/info/bob
some.web/foo/bar/7
który może wywołać typowy kontroler narzędzi, taki jak
locale/change/es
lub authorization/login
Jak mogę dostać te metody ( change
, login
), aby przekierować do poprzednich działań ( details
, info
, bar
) podczas przechodzenia dotychczasowe parametry do nich ( 5
, bob
, 7
)?
W skrócie: jak przekierować na stronę, którą właśnie odwiedziłem, po wykonaniu akcji w innym kontrolerze?
asp.net-mvc
routing
redirect
adolfojp
źródło
źródło
Request.Url.AbsolutePath.ToString()
jakoAccountController
„sLogOn
metoda zawiera kontrole na początku adresu URL z'/'
itpGET Index
wtedy włączonyGET Edit
. Odsyłający adres URL jestIndex
wtedy, gdy użytkownik wykona,POST Edit
że strona odsyłająca pochodziEdit
z poprzedniego żądania GET. Jak mogę się upewnić, żePOST Edit
zna adres URL, do którego odesłał użytkownikaGET Edit
?Jeśli chcesz przekierować z przycisku w Widoku, możesz użyć:
źródło
Jeśli nie interesują Cię testy jednostkowe, możesz po prostu napisać:
źródło
Sugestia, jak to zrobić, aby:
.
Możesz użyć przekierowania w widoku w następujący sposób:
źródło
W Mvc przy użyciu zwykłego html w widoku strony ze skryptem java onclick
To działa świetnie. nadzieja pomaga komuś.
@JuanPieterse już odpowiedział, używając,
@Html.ActionLink
więc jeśli to możliwe, ktoś może komentować lub odpowiadać za pomocą@Url.Action
źródło
Przekaż parametr returnUrl (zakodowany w adresie url) do akcji zmiany i logowania oraz wewnątrz przekierowania do podanego returnUrl. Twoja akcja logowania może wyglądać mniej więcej tak:
źródło
Używam .Net Core 2 MVC, a ten działał dla mnie, w użyciu kontrolera
HttpContext.Request.Headers["Referer"];
źródło
Możesz wrócić do poprzedniej strony, używając
ViewBag.ReturnUrl
właściwości.źródło
Aby dynamicznie skonstruować returnUrl w dowolnym widoku, spróbuj tego:
Powiązane: Dynamiczny zwrotny adres URL MVC3 (taki sam, ale z poziomu dowolnego kontrolera / akcji)
źródło
W przypadku ASP.NET Core można użyć atrybutu asp-route- *:
Inne szczegóły przykład: Wyobraź sobie, że masz kontroler pojazdu z akcjami
Indeks
Detale
Edytować
i możesz edytować dowolny pojazd z indeksu lub szczegółów, więc jeśli kliknąłeś edytuj z indeksu, musisz powrócić do indeksu po edycji, a jeśli kliknąłeś edytuj ze szczegółów, musisz powrócić do szczegółów po edycji.
W kontrolerze:
źródło