代码之家  ›  专栏  ›  技术社区  ›  Chris

带有JSON请求的ASP.NET MVC中的tempdata

  •  1
  • Chris  · 技术社区  · 15 年前

    我有一个将tempdata设置为对象的actionResult。

    呈现的页面包含一个按钮,该按钮向同一个控制器启动JSON请求。(用于jqgrid填充)。

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

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

    感谢您的帮助。

    谢谢, 克里斯

    1 回复  |  直到 15 年前
        1
  •  5
  •   Craig Stuntz    15 年前

    不重定向时,不要试图通过tempdata将数据从一个操作传递到另一个操作。 TempData is only for redirects . 很可能是页面的其他元素在您按下按钮之前发出了一个请求,导致您在tempdata中存放的项目消失。这就是为什么tempdata只用于重定向;只有在重定向时才能 有信心吗 下一个请求将是什么。

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

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