私のアプローチまたはasp.net Webフォームテクノロジーの制限である可能性がある問題があります。このソリューションの主な推進力は、ユーザーが個々のページに長時間座っていると、CAS サーバーにリダイレクトされてページ自体に戻るという単純な事実です。その結果、すべてのフォーム入力がクリアされたかのようになりますユーザーは情報を入力しませんでした (つまり、ViewState/コントロールの状態が失われました)。そうは言っても、次のような他のオプションを検討していました。
- HTML localStorage を使用して、ページ上のすべての値の JSON 文字列を保存します。この文字列は、解析してオブジェクトにすることができ、後で必要に応じてフォームに読み込むことができます。
このソリューションにより、個々のキーと値のペア (ページ インスタンス 1 を localStorage[ID1] に、ページ インスタンス 2 を localStorage[ID2] になど) で各ページに値を格納できましたが、サーバー側にはまだ制限がありました。ユーザーが保存しているページを検証します。現在、セッションを使用して、ユーザーが表示しているフォームを維持しています。ユーザーは 1 ページのみに関連付けられています。例を続けると、セッション情報により、ユーザーは localStorage[ID1] または localStorage[ID2] の両方ではなく、どちらかに関連付けられます。これはまさに私の問題です。どのページを保存するかをクライアント側から通信する必要があります。次のオプションを検討し、次の質問を考え出しました。
- どのユーザーがどのページを開いているかを格納するサーバー側のオブジェクトの静的コレクションを含む静的クラス --> 問題: どのページが実際に保存されているかを伝達します。
- 手元にあるページ ID の暗号化されたバージョンを含む ID を使用して、保存ボタンを動的にレンダリングします。
- 現在編集中の値をクエリ文字列に格納する
- ユーザーがポストバック時に変更したい ID の値を格納する Cookie 値 --> 特に ID が新しい場合 (ユーザーが初めてフォームに入力する場合)、Cookie はどのように値を取得しますか?
私はこれを複雑にしすぎているかもしれませんが、もっと簡単な方法があることを知っています。