1

我有一个 ASP.NET MVC 项目,它使用 TempData 将对象从一个控制器操作传送到另一个控制器操作 - 这实际上是相同的操作,但是一个接受 HTTP 帖子的版本。

在我的开发机器上,这按预期工作。在测试机器上,第二个控制器操作中的 TempData 值为空。

我看到的论坛帖子建议检查 sessionState 是否正常工作 - 我已经这样做了。两个网站都将 sessionState 设置为 InProc - web.config 都不包含 sessionState 条目,但我检查了 Session.Mode 是 InProc。如果我在第一个控制器操作中将一个对象放入 Session 中,我可以在两台机器上的第二个操作中检索它。

我可以通过在第二个控制器操作中重新执行用于在第一个控制器操作中设置 TempData 的过程来解决此问题,但为什么 TempData 可能会在测试机器上丢失?

4

1 回答 1

0

确保您不是从说 - 布局(母版页)额外时间阅读它。可以肯定的是,将调用包装在您设置/获取此值的位置并写出跟踪信息以确保您仅在您期望的时候调用它。不久前,我在一个应用程序(mvc2)上遇到了类似的问题,结果发现我正在阅读它,而最初似乎我不是。

于 2011-04-16T04:11:25.837 回答