使用UrlReferrer重定向到上一个网址

时间:2013-09-23 22:01:32

标签: asp.net-mvc

我是MVC的新手,我已经陷入了需要在登录或注册后将用户重定向到原始页面的步骤。

我知道无论何时执行操作,它都会将原始网址保留在UrlReferrer中。 我的问题是我希望保留orginated,并且不希望在注册过程或登录过程中更改此信息。 例如,使用在名为“A”的页面中,并且想要注册并完成注册过程。在我的注册过程中,使用通过'Sign_Up_Step1'和'Sign_Up_Step2'页面。 当用户进入“Sign_Up_Step2”页面时,UrlReferrer将获得“Sign_Up_Step1”页面的网址,因为它是上一页。

是否仍然保留此示例中的原始页面“A”?

谢谢,

1 个答案:

答案 0 :(得分:0)

你必须以某种方式坚持下去。在几页上保持查询字符串可能很笨拙,所以最好的办法就是使用cookie:

在您的流程开始时:

if(Request.UrlReferrer != null)
{
    var refCookie = new Cookie("ReferralUrl");
    refCookie.Value = Request.UrlReferrer.AbsoluteUri;
    refCookie.Expires = DateTime.Now.AddDays(1);
    Response.Cookies.Add(refCookie);
}

在注册过程结束时的控制器操作中:

var refCookie = Request.Cookies["ReferralUrl"];
if (refCookie != null)
    return Redirect(refCookie.Value);

您可能还希望通过设置默认返回网址来处理没有引荐来源的事件。