0

私のアプリケーションでは、ユーザーがログインしている間、ユーザーがデータをどのように表示するかについてカスタマイズされたエクスペリエンスを提供するために使用されるいくつかの変数(事前定義されたフィルター、言語など)を保存する必要があります。必要なデータは1Kb以下です。

このデータをSessionオブジェクトに保存しないことを確実に推奨する多くのブログ投稿を読みました。これらのブログ投稿の多くで、著者は代わりにTempDataを使用することを提案しています。

私が理解しているように、TempDataは短期間の一時データには適していて、ユーザーがログに記録されているすべての期間中のデータのキャッシュには適していません。

私は間違っていますか?私のシナリオに適した良い代替案は何ですか?

助けてくれてありがとう:)

4

1 に答える 1

2

2つのオプション:

  1. クッキー
  2. データベース

この情報をユーザーがログインしている間だけ保存する必要があり、ユーザーが戻ってきたときにこの情報を保持したくない場合は、Cookieが問題なく機能します。一方、ユーザーのカスタマイズされた設定を永続化する場合は、それらをデータベースに保存するか、永続的なCookieを使用する必要があります。

セッションもオプションですが、サイトがWebファームで実行されている場合は注意が必要です。この場合、プロセス外のセッションの永続性が必要になります。

私が理解しているように、TempDataは短期間の一時データには適していて、ユーザーがログに記録されているすべての期間中のデータのキャッシュには適していません。

あなたは、絶対に正しい。TempData次のシナリオでのみ使用する必要があります。ユーザーがコントローラーアクションを呼び出すと、このコントローラーアクションはTempDataに何かを保存し、保存されたデータをフェッチしてビューをレンダリングする別のコントローラーアクション(ビューをレンダリングしない)にすぐにリダイレクトします(リダイレクト後POSTシナリオ)。

于 2010-09-18T13:42:35.810 に答える