0

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

我知道,每当执行操作时,它都会将原始 url 保留在 UrlReferrer 中。而我的问题是我想保持原始状态,并且不想在注册过程或登录过程中更改它。例如,用户在名为“A”的页面中,想要注册并完成注册过程。在我的注册过程中,使用经过“Sign_Up_Step1”和“Sign_Up_Step2”页面。当用户到达“Sign_Up_Step2”页面时,UrlReferrer 将拥有“Sign_Up_Step1”页面的 url,因为它是前一页。

无论如何要保留此示例的原始页面“A”吗?

谢谢,

4

1 回答 1

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);

您可能还希望通过设置默认返回 URL 或其他内容来处理没有引荐来源的事件。

于 2013-09-23T22:07:43.650 回答