Misalkan saya memiliki beberapa halaman
some.web/articles/details/5
some.web/users/info/bob
some.web/foo/bar/7
yang dapat memanggil pengontrol utilitas umum seperti
locale/change/es
atau authorization/login
Bagaimana cara mendapatkan metode ini ( change
, login
) untuk mengarahkan ke tindakan sebelumnya ( details
, info
, bar
) sementara lewat parameter sebelumnya kepada mereka ( 5
, bob
, 7
)?
Singkatnya: Bagaimana cara mengalihkan ke halaman yang baru saja saya kunjungi setelah melakukan tindakan di pengontrol lain?
asp.net-mvc
routing
redirect
adolfojp.dll
sumber
sumber
Request.Url.AbsolutePath.ToString()
sebagaiAccountController
'sLogOn
metode berisi cek untuk awal URL dengan'/'
, dllGET Index
kemudianGET Edit
. URL pengarah kemudian adalahIndex
tetapi kemudian ketika pengguna melakukanPOST Edit
pengarah sekarangEdit
dari permintaan GET sebelumnya. Bagaimana saya bisa memastikanPOST Edit
mengetahui URL yang merujuk penggunaGET Edit
?Jika Anda ingin mengalihkan dari tombol di Tampilan, Anda dapat menggunakan:
sumber
Jika Anda tidak peduli dengan pengujian unit maka Anda cukup menulis:
sumber
Sebuah saran bagaimana melakukan ini sedemikian rupa sehingga:
.
Anda dapat menggunakan pengalihan dalam tampilan seperti ini:
sumber
Di Mvc menggunakan html biasa di View Page dengan java script onclick
Ini bekerja dengan baik. harapan membantu seseorang.
@JuanPieterse telah menjawab menggunakan
@Html.ActionLink
jadi jika memungkinkan seseorang dapat berkomentar atau menjawab menggunakan@Url.Action
sumber
Meneruskan parameter returnUrl (url encoded) ke tindakan perubahan dan login dan di dalam redirect ke returnUrl yang diberikan ini. Tindakan login Anda mungkin terlihat seperti ini:
sumber
Saya menggunakan .Net Core 2 MVC, dan yang ini bekerja untuk saya, dalam penggunaan pengontrol
HttpContext.Request.Headers["Referer"];
sumber
Anda dapat kembali ke halaman sebelumnya dengan menggunakan
ViewBag.ReturnUrl
properti.sumber
Untuk membangun returnUrl secara dinamis dalam tampilan apa pun, coba ini:
Terkait: MVC3 Dynamic Return URL (Sama tetapi dari dalam Pengontrol / Tindakan apa pun)
sumber
Untuk ASP.NET Core Anda dapat menggunakan atribut asp-route- *:
Contoh detail lainnya: Bayangkan Anda memiliki Pengontrol Kendaraan dengan tindakan
Indeks
Detail
Sunting
dan Anda dapat mengedit kendaraan apa pun dari Indeks atau dari Detail, jadi jika Anda mengklik edit dari indeks, Anda harus kembali ke indeks setelah mengedit dan jika Anda mengklik edit dari detail, Anda harus kembali ke detail setelah mengedit.
Di pengontrol Anda:
sumber