2009-08-19 15 views
1

TempDataをオブジェクトに設定するActionResultがあります。ASP.NetのTempdata JSONリクエストを使用したMVC

レンダリングされるページには、同じコントローラへのJSONリクエストを開始するボタンが含まれています。 (jqGrid母集団の場合)。

JSONリクエストのTempDataはnullです。なぜこれが起こりますか?

同じコントローラに投稿するボタンがあり、それをJSONリクエストボタンの代わりにクリックすると、TempDataが表示されますが、JSONボタンをクリックしてからPostpreterのTempData nullになります。

ヘルプありがとうございます。

おかげで、 クリス

+0

私たちに見せることのできるサンプルコードはありますか? –

+0

私はJamesに同意します、ここでコードを見る必要があります。 – Lazarus

答えて

5

はリダイレクトしない場合はTempDataを経由して別のアクションからのデータを渡すためにしようとしないでください。 TempData is only for redirects。あなたのページの他のいくつかの要素がボタンを押す前に要求を出している可能性が非常に高いので、あなたがTempDataで尋ねた項目が消えます。そのため、TempDataはリダイレクト専用です。リダイレクトする場合にのみ、の信頼性はすべての次のリクエストになります。

代わりに、レンダリングされたページにデータを配置します。このデータが必要なアクションをリクエストする必要がある場合は、クエリ文字列パラメータとして明示的に渡します。

HTTPはステートレスです。それを生きることを学ぶ。サーバーに状態を導入しようとしないでください。あなたがしたらそれを後悔するでしょう。

関連する問題