我是MVC的新手,我已经陷入了需要在登录或注册后将用户重定向到原始页面的步骤。
我知道无论何时执行操作,它都会将原始网址保留在UrlReferrer中。 我的问题是我希望保留orginated,并且不希望在注册过程或登录过程中更改此信息。 例如,使用在名为“A”的页面中,并且想要注册并完成注册过程。在我的注册过程中,使用通过'Sign_Up_Step1'和'Sign_Up_Step2'页面。 当用户进入“Sign_Up_Step2”页面时,UrlReferrer将获得“Sign_Up_Step1”页面的网址,因为它是上一页。
是否仍然保留此示例中的原始页面“A”?
谢谢,
答案 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);
您可能还希望通过设置默认返回网址来处理没有引荐来源的事件。