【发布时间】:2014-07-02 11:15:29
【问题描述】:
我正在开发网络应用程序,没什么特别的。
有很多用户,每个用户都有很多项目。
为了存储数据,我使用了 Session 容器。
当用户打开项目时,它就像(作为示例)
Session["projectId"] = current_project_id;
Session["projectName"] = current_project_name;
所以当用户打开让我们在其他选项卡中说第二个项目时,您会看到关于第一个项目的数据只是替换为第二个项目数据。
真的很糟糕,是的。
所以我对如何构建应用程序很感兴趣,这样不同的用户可以在不同的选项卡中打开他们的不同项目,并且一切正常,没有任何数据丢失。
我读到了 TempData 和 ViewBag,但仍然无法想象如何替换这些 Session 变量。
什么可以帮助我?我应该使用什么来存储每个新标签的新数据?
【问题讨论】:
-
您在会话中存储什么类型的数据?为什么在会话中需要它? Session 不是 MVC 的初衷,因为它是一种更加无状态的设计。
-
@mckeejm 我存储了一些
ids,目的是从控制器中的数据库中获取一些数据 -
一个例子——用户在
project_id保存在Session["project_id"]之后选择它的项目(或创建一个) -
我希望用户可以选择几个项目并像并行一样使用它们
-
所以不要将这些 id 存储在会话中,将这些 id 放在 url 中并以这种方式通过控制器获取它们。这将使它们在每个标签上都是唯一的,因为网址会有所不同。
标签: asp.net-mvc web-services session session-variables