gpt4 book ai didi

asp.net-mvc-3 - MVC3 应用程序并跟踪用户最初进入的页面

转载 作者:行者123 更新时间:2023-12-04 06:50:14 27 4
gpt4 key购买 nike

感谢您花时间阅读我的问题。我们的站点访问者可能会到达另一个用户的个人资料页面。然后,我们将鼓励他们登录该网站,或者如果他们目前不是成员(member),则注册为新成员(member)。这些操作使他们远离他们声明的初始页面/URL,但我们希望能够在完成登录/注册后通过“跟踪”他们开始的地方“跳转他们”回到该页面。 (注意:如果重要的话,我们使用的是标准的 Microsoft 成员(member)提供程序类。)“返回”部分看起来很简单,问题在于“跟踪”部分。

插图/示例:

访问者点击后到达网站: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);}

然后你把它放到你的链接中

最佳答案

你有几个选择:

1) 您可以在 Controller 中使用 Session 来存储值:

Session.Remove("ID");
Session.Add("ID", "108")

并在调用的 Controller 中检索。

ID = Session["ID"];

2) 您可以在登录 Controller 的查询字符串上传递 ID=108:

return RedirectToAction("Edit", "Profile", new { ID = "108" });

关于asp.net-mvc-3 - MVC3 应用程序并跟踪用户最初进入的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10504880/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com