基本上,我在MVC站点上有一个页面,允许用户向表中添加行并修改每行上的数据(通过下拉列表和文本框)。其中一个要求是,如果用户刷新页面,数据将以某种方式保存并重新加载到表中。
不仅在客户端保留数据至关重要,而且刷新页面将触发GET,从而调用页面的Index操作。索引操作(此刻)假定页面是第一次加载,因此它不关心任何现有的表数据。但是,此页面不是用户当前可以自己访问的页面。用户在填写上一页的数据后到达此页面。该数据(来自上一页)存储在TempData中,并在触发索引操作时传递给该页面的VM。服务器端问题是当用户刷新页面时TempData不存在。
我想到的解决方案就是这个。
提供通过$(window).bind('pageunload', ...);
触发的JavaScript函数。此函数将表序列化为JSON对象,并使用密钥将其存储在本地存储中。页面加载时,JavaScript将检查该密钥是否存在于本地存储中。如果是这样,它将加载表,该表应该仍然包括POST回服务器并成功绑定到Action(及其View Model)所需的所有数据。
这个提议的解决方案有两个问题:
提前感谢您的回答。