1

セッションを使用するか、1 つのページで作業中にデータを保存するために TempData を使用することについて質問があります。複数の Ajax リクエストを使用してデータを保存および取得し、コントローラー アクションのセッションに保存します。私がやりたいのは、ユーザーがページを離れたときに、セッション変数をクリアしたいということです。セッションでそれを行うにはどうすればよいですか?または、1 つの http リクエストに対してのみデータを保存する方法が他にあるかもしれません (ページ内に複数の POST リクエストと GET リクエストがあると述べたので、これについてはわかりません)。

どんな助けでも大歓迎です。ありがとう

4

4 に答える 4

1

Hiddenfieldsそのデータを保持するためにhtmlで使用しないでください...

ViewState データを格納するために hiddenfield を使用する Asp.Net と同じ.....

于 2012-05-24T16:56:14.797 に答える
1

これを行うには、Html.HiddenFor(myModel => myModel.SomeField) を使用します。それに値を割り当てることができ、その後、値がモデルに自動的にポストバックされます。これは非常に便利です。

これがお役に立てば幸いです。

本当に TempData を使用したい場合 (私はときどき使用します)、次のような KeepTempDataAlive(string tempKey) メソッドがあります...

if(TempData[tempKey] != null)
{
     TempData.Keep(tempKey);
}

これで、あと 1 回の投稿でそれが維持されるはずです。必要な間だけこれを行ってください。

于 2012-05-24T17:20:28.403 に答える
0

あなたの意図次第です。

Ajax リクエストで非同期処理を行いたい場合は、隠しフィールドまたは .success イベントの jQuery .data() にデータを保存できます。次に、すべてが完了したら、jQuery を使用して必要な処理を入力します。

(複数のページにわたって)真のセッション変数が必要な場合、それを行う最善の方法は、window.close で AJAX プロセスを実行してセッションをクリアすることです。ただし、これは JavaScript が有効になっているユーザーに限定されます。これを行うための絶対確実な方法はないと思います。

于 2012-05-24T17:04:07.967 に答える