0

我有一个 MVC 应用程序。我拥有的页面采用一些过滤条件并从服务器获取数据并对数据进行一些其他操作。要求是当页面加载时,不应该有数据被过滤,但是一旦用户输入一些过滤条件并执行任何操作,无论是 Ajax 调用还是页面刷新,都需要存储和应用过滤条件。我正在使用 amplify.js 来存储用户选择的设置。每当用户进行任何刷新/Ajax 调用时,我都会存储过滤条件。在 $document.ready 上,我再次应用过滤条件

问题是数据没有被清除。因此,当用户启动应用程序时,将应用过滤条件。如果我清除 $document.ready 中的条件,我也会丢失有关用户操作的数据。

那么,如何区分初始页面加载和随后的刷新/重定向/Ajax 调用呢?

这是应用过滤器的代码。

var filterData = amplify.store.localStorage(filterKey) ? JSON.parse(amplify.store.localStorage(filterKey)) : defaultFilterData;
applyFilters(filterData);

要存储 filterData,

amplify.store.localStorage(filterKey, ko.mapping.toJSON(filterData));

通过初始加载,我的意思是当应用程序第一次启动时。因为我面临的问题是即使我关闭应用程序并重新启动,放大也会存储数据。

4

1 回答 1

0

我不知道您的应用程序的结构,但根据您的问题,我想您可以设置一个 Session 变量,如果这是用户第一次访问您的页面,您可以清除 localStorage。TempData 也适合这种情况,因为您可以设置一个仅在第一个请求中存在的变量。

例如:

Session["firstRequest"] = true;

或者

TempData["firstRequest"] = true;

您可以在 Session_OnStart() 事件或控制器中设置此变量。

于 2013-11-06T01:13:13.973 回答