【问题标题】:Redirecting to originating page in ASP.NET MVC [duplicate]重定向到 ASP.NET MVC 中的原始页面 [重复]
【发布时间】:2014-02-21 01:13:13
【问题描述】:
我有一个登录页面,它提供登录功能以及注册链接。
在此页面上,我使用
获取上一页 URL
document.referrer
这有助于在登录成功后将用户带回原始页面。
现在,在进入注册页面的同一登录页面上有一个注册选项。
在典型情况下,当用户从某个页面 Page1 到登录页面 Page2,然后从那里转到注册页面 Page3,我如何跟踪 Page1 以便在成功注册时将用户发送回 Page1来自第 3 页。
document.referrer
将返回Page2并在成功注册后返回登录页面。
任何线索。
【问题讨论】:
标签:
javascript
asp.net-mvc
【解决方案1】:
您可以对 page1 的相对路径进行 url 编码,并通过查询字符串将其传递给 page2(登录)。例如。 /login?redirectto=%2F 页面。如果用户登录,则从查询字符串中获取原始页面并重定向它们。如果用户导航到注册页面,那么您可以构建链接,使其包含相同的查询字符串。例如。 @Url.Action("Register","Home", new {redirecto = Request.Params["redirectto"]})。您可能必须在操作链接中再次对参数进行 urlencode。然后,一旦用户注册,您应该能够像以前一样,从查询字符串中拉出 page1 url 并重定向。希望一切都说得通。
【解决方案2】:
你的登录页面的动作应该是这样的
public ActionResult login(string backAction, string backController){
//Do your stuff
return RedirectToAction(backAction, backController);
}
当您调用您的登录时,您必须通过查询字符串传递登录参数,例如
@Url.Action("Login", "LoginController", new{ backAction = "action", backController = "controller" })