0

想看看是否有人可以就如何解决我目前面临的这个问题提供一些建议/指示。场景就像……</p>

  1. 我有一个页面说 A 执行搜索并显示数据。
  2. 在页面 A 上有一个 ActionLink,它将所选记录的 ID 传递到页面 B。
  3. 在重定向到页面 B 之前,我需要存储/保留页面 A 的表单数据(我不想使用会话或隐藏文件,因为数据很关键)。

  4. 一旦用户在页面 B 上完成工作,我需要在页面 B 上保存更改并重定向回页面 A。

  5. 此处,页面 A 应根据步骤 3 中的保存器表单数据发出 Post 请求。目的是显示在重定向到页面 B 之前存在的搜索数据。

就像是..

View A
    // Search textboxes here
    // Search data list here with ActionLink column

View B
   // more controls here
   // Submit button - saves changes on this page. 
   // after submit button processing need to go back to View A 
   // and display the same Search data List based on Seach textboxes values 
   // those were entered by user before coming to this View B. 
   // Ques: Not sure how to persist data from View A between calls to View B and then View B to View A.

有没有人有更好的方法来实现这一目标?

目前我的解决方案是......

  1. 在 ActionLink 单击上发出 ajax POST 请求并使用控制器将表单集合保存在缓存中。
  2. 使默认的 ActionLink GET 请求传递 ID 并在控制器中返回视图 B。
  3. 在视图 B 上,在提交时执行 ajax POST 请求以将数据保存在页面 B 上并在 ajax 成功函数中从缓存中返回数据。
  4. 使用在上述 ajax 成功中返回的数据发出另一个 ajax POST 请求以显示视图 A。

提前致谢

4

1 回答 1

0

如果您依赖于整页刷新,那么您需要使用 Session。您没有说明为什么不想使用它,但是 Cache 对象完全不适合此目的,因为如果服务器需要重新获得一些内存,它可以被清除,并且它是在用户之间共享的. 会话专为您所描述的目的而构建 - 在整页刷新之间保留数据。

或者,我会考虑将您的网站构建为单页应用程序,也就是说,您不会在导航之间进行整页刷新,并且可以将数据存储在客户端上的 javascript 对象中。由于您非常强调数据至关重要,因此 Session 可能会更安全,因为如果用户不小心导航离开页面,您的 javascript 对象将被清除,而基于服务器的会话对象将保留它在会话生命周期内。

您还可以将数据存储在 cookie/本地存储对象 (html5) 中,但这对于您正在做的事情可能是多余的。

于 2012-10-27T18:02:58.300 回答