0

私が現在直面しているこの問題に対処する方法について、誰かが提案/指針を提供できるかどうかを確認したかった. シナリオは…</p>

  1. 検索が実行され、データが表示される A というページがあります。
  2. ページ A には、選択したレコードの ID をページ B に渡す ActionLink があります。
  3. ページ B にリダイレクトする前に、ページ A のフォーム データを保存/保持する必要があります (データが重要であるため、セッションまたは非表示のフィールドを使用したくありません)。

  4. ユーザーがページ B での作業を完了したら、ページ B の変更を保存し、ページ A にリダイレクトする必要があります。

  5. ここで、ページ A は、ステップ 3 の保存フォーム データに基づいて Post リクエストを行う必要があります。目的は、ページ B にリダイレクトする前にそこにあった検索済みデータを表示することです。

何かのようなもの..

View A
    // Search textboxes here
    // Search data list here with ActionLink column

View B
   // more controls here
   // Submit button - saves changes on this page. 
   // after submit button processing need to go back to View A 
   // and display the same Search data List based on Seach textboxes values 
   // those were entered by user before coming to this View B. 
   // Ques: Not sure how to persist data from View A between calls to View B and then View B to View A.

これを達成するためのより良いアプローチはありますか?

今のところ、私が持っている解決策は...

  1. ActionLinkクリックでajax POSTリクエストを作成し、コントローラーを使用してフォームコレクションをキャッシュに保存します。
  2. ID を渡すデフォルトの ActionLink GET リクエストを作成し、コントローラーでビュー B を返します。
  3. ビュー B で、サブミット時に ajax POST リクエストを実行してページ B にデータを保存し、ajax 成功関数でキャッシュからデータを返します。
  4. 上記の ajax 成功で返されたデータを使用して別の ajax POST リクエストを作成し、ビュー A を表示します。

前もって感謝します

4

1 に答える 1

0

ページ全体の更新に依存している場合は、Session を使用する必要があります。使用したくない理由については説明しませんでしたが、 Cache オブジェクトは、サーバーがメモリを取り戻す必要がある場合にクリアでき、ユーザー間で共有されるため、この目的にはまったく不適切です。 . セッションは、あなたが説明している目的のために特別に構築されています-ページ全体の更新間でデータを保持します。

または、サイトをシングルページアプリケーションとして構築することを検討します。別名、ナビゲーション間でページ全体を更新せず、クライアントのjavascriptオブジェクトにデータを保存できます。データが重要であることを強調しているため、セッションはより安全かもしれませんが、ユーザーが誤ってページから移動した場合、JavaScript オブジェクトがクリアされるため、サーバーベースのセッションオブジェクトがそれを保持します。セッションのライフサイクルの間。

データを Cookie/ローカル ストレージ オブジェクト (html5) に保存することもできますが、これはおそらくやり過ぎです。

于 2012-10-27T18:02:58.300 に答える