1

TempDataをオブジェクトに設定するActionResultがあります。

レンダリングされるページには、同じコントローラーに対してJSONリクエストを起動するボタンが含まれています。(jqGridポピュレーションの場合)。

JSONリクエストのTempDataがnullです-なぜこれが発生するのですか?

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

感謝します。

ありがとう、クリス

4

1 に答える 1

5

リダイレクトしない場合は、TempDataを介してあるアクションから別のアクションにデータを渡そうとしないでください。TempDataはリダイレクト専用です。ボタンを押す前に、ページの他の要素がリクエストを行っている可能性が高く、TempDataでリスしたアイテムが消えてしまいます。そのため、TempDataはリダイレクト専用です。リダイレクトする場合にのみ、次のリクエストがどうなるかについて自信を持つことができます。

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

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

于 2009-08-19T16:05:50.883 に答える