如何在MVC 3中的ActionResults之间传递数据?

时间:2011-08-29 18:59:29

标签: asp.net-mvc-3

我有一系列最终用户必须填写的页面(复选框),当他们完成每个页面时,我尝试创建他们选中的复选框列表。在这一系列页面的最后,我想向他们展示他们在确认页面中选择的所有内容。我注意到请求之间的信息列表<>我在每个页面上创建的最终确认页面都不可用。我尝试了一些不同的解决方案(私有全局)无济于事。如何在ActionResults之间传递数据以完成在确认页面上显示所有选定的数据?感谢。

One potential solution.其他人?

3 个答案:

答案 0 :(得分:2)

网络是无状态的,这意味着如果你想保留它们以供以后使用,你必须存储东西。任何Web框架都是如此。您需要将每个页面的结果存储在某处。

构建向导的选项:

  • 将所有选定的答案存储在会话中,并在页面之间继续构建。最终确认将从会话中获得结果。
  • 将它们存储在数据库中。
  • 将结果存储在Cookie中。
  • 将它们存储在HTML5本地存储
  • 使用隐藏字段在每个页面上执行它们。第2页将在隐藏字段等中具有Page 1的答案。

答案 1 :(得分:1)

您需要在请求之间保存状态。你可以这样做:

  1. 查询字符串参数
  2. 会话状态
  3. 隐藏的字段
  4. Db(如果你想在每次请求后坚持中间选择)
  5. 本地存储
  6. 缓存
  7. 还有别的吗?

    我猜,正如RyanW指出的那样,将它们存储在会话状态是通常的方法。然而,你可以在一个请求中获取所有步骤,在本地做一些花哨的JS /存储中间结果,并在问卷完成时发表最后的帖子。

答案 2 :(得分:0)

你应该看here

最初,您需要在隐藏字段中保留必要的变量,并完全通过所有请求发送模型。