在浏览器中存储用户输入的表数据

时间:2015-07-29 22:00:21

标签: javascript html .net asp.net-mvc local-storage

基本上,我在MVC站点上有一个页面,允许用户向表中添加行并修改每行上的数据(通过下拉列表和文本框)。其中一个要求是,如果用户刷新页面,数据将以某种方式保存并重新加载到表中。

不仅在客户端保留数据至关重要,而且刷新页面将触发GET,从而调用页面的Index操作。索引操作(此刻)假定页面是第一次加载,因此它不关心任何现有的表数据。但是,此页面不是用户当前可以自己访问的页面。用户在填写上一页的数据后到达此页面。该数据(来自上一页)存储在TempData中,并在触发索引操作时传递给该页面的VM。服务器端问题是当用户刷新页面时TempData不存在。

我想到的解决方案就是这个。

提供通过$(window).bind('pageunload', ...);触发的JavaScript函数。此函数将表序列化为JSON对象,并使用密钥将其存储在本地存储中。页面加载时,JavaScript将检查该密钥是否存在于本地存储中。如果是这样,它将加载表,该表应该仍然包括POST回服务器并成功绑定到Action(及其View Model)所需的所有数据。

这个提议的解决方案有两个问题:

  1. 这是一个很好的解决方案。如果没有,那将是最好的。
  2. 如果#1是'是',我应该在服务器端做什么让Index操作知道该页面正在重新加载,因此它不应该将注意力集中在TempData(也许只是检查TempData是否为null并返回空VM,如果是这样的话???)
  3. 提前感谢您的回答。

0 个答案:

没有答案