【问题标题】:Tempdata in ASP.Net MVC with JSON Request带有 JSON 请求的 ASP.Net MVC 中的临时数据
【发布时间】:2009-08-19 15:48:26
【问题描述】:

我有一个将 TempData 设置为对象的 ActionResult。

呈现的页面包含一个按钮,该按钮向同一控制器发起 JSON 请求。 (对于 jqGrid 人口)。

JSON 请求上的 TempData 为空 - 为什么会发生这种情况?

更奇怪的是,如果我有一个发布到同一个控制器的按钮,我点击它而不是我的 JSON 请求按钮,TempData 会在那里,但是如果我点击 JSON 按钮,那么发布按钮,TempData 会为空。

帮助表示赞赏。

谢谢, 克里斯

【问题讨论】:

  • 您有任何代码示例可以展示给我们看吗?
  • 我同意 James,我们需要在这里查看代码。

标签: jquery asp.net-mvc json jqgrid


【解决方案1】:

在不重定向时,不要尝试通过 TempData 将数据从一个操作传递到另一个操作。 TempData is only for redirects。在您按下按钮之前,您页面的某些其他元素很可能正在发出请求,从而导致您在 TempData 中隐藏的项目消失。这就是 TempData 仅用于重定向的原因;只有在重定向时,您才能完全确定下一个请求将是什么。

相反,将数据放在呈现的页面中。当您需要请求需要此数据的操作时,请将其作为查询字符串参数显式传递。

HTTP 是无状态的。学会忍受它。不要试图向你的服务器引入状态;如果你这样做了,你会后悔的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多