对于多个并发用户,在TempData中存储值是否安全?

时间:2011-12-29 01:35:09

标签: c# asp.net-mvc razor

我一直在使用TempData在页面请求之间保留我的模型,否则我将无法访问模型中我需要的类的特定属性。

(这是一个轻微的题外话和简化,但基本上我有一个具有.name和.active属性的对象列表。我有一个CheckBoxFor .active属性,并保留,但.name属性是在提交表单时设置为null;我也需要访问该属性,所以我一直在TempData中存储旧模型,然后在需要时复制该属性。有没有更好的方法呢?我我很惊讶我正在使用的物体的属性会被取消。)

当用户选中复选框时,模型存储在TempData中,从而提交表单。当用户单击按钮时,稍后会读取TempData。 (没有干预请求。)

以多种用户安全的方式使用TempData吗?换句话说,每个客户端是否都有自己的TempData副本?我担心的情况大致如下:

  1. 用户1单击复选框,将其模型保存到TempData
  2. 用户2单击复选框,将她的模型保存到TempData
  3. 用户1单击按钮,提交表单并从TempData
  4. 读取模型

    我不确定用户1将获得哪种型号。有人可以请我加油吗?

1 个答案:

答案 0 :(得分:8)

TempData是会话绑定的。用户1只能看到它的TempData。