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 に答える