在动作之间保存状态

时间:2010-03-19 23:47:04

标签: asp.net-mvc

我想问一个解决方案。例如,我们有一个页面。我从此页面链接到另一个操作。我希望能够在页面上保存输入数据的值。 例如,我转到另一个页面输入数据并返回。像向导一样。但问题是我们可以从不同的页面进行操作。它需要保存几种数据类型。

明白了吗? 有什么建议吗?

我想要有共同的解决方案......

2 个答案:

答案 0 :(得分:3)

您还可以使用TempData在请求之间保留数据。

答案 1 :(得分:0)

在过去的向导中,我使用Session来存储数据,因为它在此过程中已经建立起来。

不要忘记的一件事是每次使用它时都要验证存储在会话中的数据。如果不是,则用户可以利用后退按钮来伪造某些场景。例如:

  1. 用户使用向导并转到向导中的第3步。
  2. 然后他们转到另一个不属于向导的页面。
  3. 然后用户再次进入向导 只进入向导的第2步。
  4. 用户然后使用后退按钮全部运行 返回原始向导的方式 他们在第3步了。
  5. 在这种情况下,会话中的数据(如果发布)将认为它来自原始向导,即使会话中的数据仅反映了用户第二次访问向导时的第2步。每当有人启动向导并在每一步验证它时都使用唯一键。

    希望有所帮助,而不是太混乱(我输入它有点儿。)

    另一种方法是通过TempData保留数据,但每次您需要将其拉出并持续发布回到下一步。然后重建它,添加并重复。这也可以是很多工作,但至少你不必担心发生的事情不同步。