1

TempData を使用してあるコントローラー アクションから別のコントローラー アクションにオブジェクトを運ぶ ASP.NET MVC プロジェクトがあります。これは実際には同じアクションですが、HTTP 投稿を受け入れるバージョンです。

私の開発マシンでは、これは期待どおりに機能します。テスト マシンでは、TempData 値は 2 番目のコントローラー アクションで null です。

私が見たフォーラムの投稿は、sessionStateが機能していることを確認することを提案しています-私はそれを行いました。両方の Web サイトで sessionState が InProc に設定されています。どちらの web.config にも sessionState エントリは含まれていませんが、Session.Mode が InProc であることを確認しました。最初のコントローラ アクションでオブジェクトをセッションに配置すると、両方のマシンで 2 番目のコントローラ アクションで取得できます。

これを回避するには、最初のコントローラー アクションで TempData を設定するために使用したプロセスを 2 番目のコントローラー アクションでやり直しますが、テスト マシンで TempData が失われるのはなぜですか?

4

1 に答える 1

0

たとえば、レイアウト(マスターページ)から余分な時間を読んでいないことを確認してください。確かに、この値を設定/取得する呼び出しをラップし、トレース情報を書き込んで、予期したときにのみ呼び出していることを確認してください。しばらく前にアプリ(mvc2)で同様の問題が発生しましたが、最初は読んでいないように見えたときに読んでいたことがわかりました。

于 2011-04-16T04:11:25.837 に答える