この問題についていくつかアドバイスをお願いします。基本的には、2ページ(簡単のため)であり、2ページ目は最初のページに完全に依存しています。ページ間にオブジェクトを渡して保存する
メインページが検索ページであり、2ページ目がビューページであるとします。
このサイトはXMLリクエストを処理します。究極の目的は、各リクエストが少し遅くなるため、XMLリクエストを最小限に抑えることです。私はセッションを使用することを検討しましたが、ユーザー間でセッションが無作為に混在していて、IISのリサイクルプロセスを非常に小さな時間枠に変更することによってしか抑制できないという問題が過去にありました。その他の方法で。私はTempDataを試しましたが、それは1回のリクエストの後に終了するので、ビューページのページリフレッシュは可能ではないようです。
とにかく、[表示]ページで必要な5つの属性を持つ[検索]ページがありますが、ビューページでXML要求を行うには2つしか必要ありません。
検索ページはが含まれています:
- ID、
- 名、
- 市、
- メール、
- 身長
ビューページから、次のことを必要とします検索ページXML要求を完了するために:
- ID、
- 名、
- メール
ビューページは、検索ページから、すべての情報が表示され、プラスXMLレスポンスのすべて。
私は検索ページにあるリンクにはIDのURLしかないので、2番目のページのXMLリクエストには名前と電子メールが必要です。セッションなしで可能かどうか分かりませんか?
私が試したことは次のとおりです。
検索結果をTempDataに格納します。誰かが「表示」のリンク(<a href="/view/123456">View</a>
)をクリックしたときに、その方法は、ビューのページがそうのような検索結果をロードします。
var viewPage = SearchResults.Where(w => w.ID == id).FirstOrDefault();
ViewModelには、XMLを作り、viewPage
からName
とEmail
をつかんでページをレンダリング他の必要な詳細と共にviewPage
からの応答を要求し、表示する。
tempdataで期待どおりに動作します。データは最初のリクエストでのみ保持され、ページが更新されると消滅します。セッションは選択肢ですが、他には何かありますか?
(テキストの壁のために申し訳ありません:)
ちょうどあなたの質問を素早く見て、私はちょうどそのように取り組んだプロジェクトを思い出しました。私は、非対称暗号化アルゴリズムで値(電子メール、名前など)を暗号化し、それをQueryString値として入れて問題を分類しました。また、 'TempData'もセッションを使用していることに注意してください。 – tugberk