在MVC中使用Sessions的问题

时间:2014-07-02 02:54:46

标签: asp.net-mvc web-services session session-variables

我正在开发Web应用程序,没什么特别的。

有很多用户和每个用户都有很多项目。

要存储我使用会话容器的数据。

当用户打开项目时,它就像(例如)

Session["projectId"] = current_project_id;
Session["projectName"] = current_project_name;

因此,当您看到用户打开时可以在其他选项卡中说出第二个项目时,第一个项目的数据只会替换为第二个项目数据。

真的很糟糕,是的。

所以我对如何以不同用户可以在不同标签中打开不同项目的方式构建应用程序感兴趣,一切正常,没有任何数据丢失。

我读到了TempDataViewBag,但仍然无法想象如何替换这些会话变量。

有什么可以帮助我?我应该使用什么来存储每个新标签的新数据?

1 个答案:

答案 0 :(得分:2)

您可以在会话中存储项目列表或词典:

var projects = new Dictionary<int, string>();
projects.Add(projectId, projectName);

Session["UserProjects"] = projects;

后来:

var projects = (Dictionary<int, string>)Session["UserProjects"];