并感谢您花时间阅读我的问题。我们将有可能到达另一个用户的个人资料页面的网站访问者。然后,我们将鼓励他们登录该网站,或者如果他们当前不是会员,则注册为新会员。这些操作使他们远离他们声明的初始页面/URL,但我们希望能够在完成登录/注册后通过“跟踪”他们开始的位置将他们“跳转”回该页面。(注意:如果重要的话,我们使用的是标准的 Microsoft 会员提供程序类。)“跳回”部分看起来很简单,但问题在于“跟踪”部分。
插图/示例:
访问者点击后到达站点:www.mysite.com/profiles/ID=108
然后访问者离开该页面进行登录。我们如何才能以某种方式最好地捕获 ID=108,以便(已登录)用户返回该配置文件页面有一个很好的选择?我从阅读中了解到 cookie 不是最佳选择,但由于用户尚未登录等,其他一些选项似乎让我的思维变得混乱。
我可以采取什么具体步骤以最好的 MVC3 方式解决这个问题?
编辑:
public ViewResult MyProfile(int? id)
{
HttpCookie cookie = new HttpCookie("MySiteCookie");
cookie.Value = id.ToString();
cookie.Expires = DateTime.Now.AddYears(1); //or whatever time is appropriate
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
//do some other stuff
}
在另一端,为了使用 cookie,我将它(暂时)放入菜单中,方式如下:
var MyProfileId = "";
if (Request.Cookies["MySiteCookie"] != null)
{HttpCookie cookie = request.Cookies["MySiteCookie"];
MyProfileId = Server.HtmlEncode(cookie.Value);}
然后你把它放到你的链接中