【问题标题】:How can use some session for multiple browser tabs in ASP.NET Core MVC如何在 ASP.NET Core MVC 中为多个浏览器选项卡使用某些会话
【发布时间】:2021-06-14 08:08:38
【问题描述】:

我想对每个学生进行分析,然后为每次使用执行一些操作,例如(编辑、添加课程……)。

获取此 URL /students/profile/1 以获取学生的个人资料。

我想查看 3 名学生的个人资料:

  • 学生 1 /students/profile/1
  • 学生 2 /students/profile/2
  • 学生 3 /students/profile/3

Profile操作方法:

public IActionResult Profile(long? id)
{
    HttpContext.Session.SetInt32(".ProfileStudent.StudentId", id); // set session

    return View();
}

如果我需要会话 ID 中给定 ID 的学生数据:

URL => /students/profile/1

public IActionResult EditInfo()
{
    var id = HttpContext.Session.GetInt32(".ProfileStudent.StudentId");

    var student = db.Student.Find(id);
    return View(student );
}

URL => /students/profile/2

public IActionResult EditInfo()
{
    var id = HttpContext.Session.GetInt32(".ProfileStudent.StudentId");

    var student = db.Student.Find(id);
    return View(student );
}

现在数据冲突并返回最后一个值会话。

如何为每个浏览器选项卡的每个用户获取数据会话?

【问题讨论】:

标签: c# session .net-core asp.net-core-mvc session-variables


【解决方案1】:

出于多种原因,我强烈建议不要以这种方式存储和使用参数,并且打开多个选项卡无论如何都不能解决您的问题。只需将特定的 id 作为参数传递给 EditInfo 方法,这样您就可以同时使用多个选项卡。

public IActionResult EditInfo(int id)
{
    var student = db.Student.Find(id);
    return View(student );
}

【讨论】:

  • 我的例子很简单,只是为了解释,需要每个标签的会话,你可以看到 Facebook 组包含一些操作,而不是合并每个标签
猜你喜欢
  • 1970-01-01
  • 2014-09-24
  • 2011-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多