【问题标题】:ASP.Net MVC TempData - how to keep stateASP.Net MVC TempData - 如何保持状态
【发布时间】:2010-09-24 07:24:53
【问题描述】:

我们使用 ASP.Net MVC TempData 在页面刷新之间存储表单数据。我们在页面上有一个按钮,允许用户执行特定操作。如果用户单击此按钮一次,它工作正常。如果他们两次单击该按钮(这是允许的),我们将丢失 TempData 数据。无论用户单击按钮多少次,我们都需要确保保留 TempData 数据。顺便说一句,按钮激活一个 URL.Action,并利用 Ajax。

【问题讨论】:

    标签: asp.net-mvc ajax tempdata


    【解决方案1】:

    TempData.Keep()?

    【讨论】:

      【解决方案2】:

      我建议将数据放入 Session 而不是 TempData,因为 TempData 仅将数据存储到下一个请求的末尾。在您的情况下发生的情况是用户每次单击按钮时都会发出请求,因此在第二次单击按钮时,TempData 已经被清除(或将在第一次请求结束时被清除)。

      您可以在第一次单击按钮后禁用该按钮,但这可能会导致解决方案不够稳健。使用 Session 和另一个 AJAX 请求清除第一个 AJAX 请求返回成功时所做的 Session 中的数据将确保您知道第一个 AJAX 请求返回并且可以清除 Session 中的数据

      【讨论】:

        【解决方案3】:

        无论用户点击多少次按钮,我们都需要确保 TempData 数据被保留

        TempData 是将数据传递给下一个操作/请求。 Session 更是如此。

        如果您仍想使用 TempData,请确保所有相关的控制器操作再次设置相同的 TempData 值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多