我们正在使用 ASP.Net MVC TempData 在页面刷新之间存储表单数据。我们在页面上有一个按钮,允许用户执行某个操作。如果用户单击此按钮一次,它工作正常。如果他们单击该按钮两次(这是允许的),我们将丢失 TempData 数据。无论用户单击按钮多少次,我们都需要确保保留 TempData 数据。顺便说一下,按钮激活了一个 URL.Action,并使用了 Ajax。
最佳答案
我建议将数据放在 Session 中而不是 TempData 中,因为 TempData 只将数据存储到下一个请求结束。在您的情况下发生的情况是用户每次单击按钮时都会发出请求,因此在第二次单击按钮时,TempData 已经被清除(或将在第一个请求结束时被清除)。
您可以在第一次单击后禁用该按钮,但这可能会导致解决方案不够稳健。使用Session和另一个AJAX请求清除第一个AJAX请求成功返回时发出的Session中的数据,可以保证你知道第一个AJAX请求返回,Session中的数据可以被清除
关于asp.net-mvc - ASP.Net MVC TempData - 如何保持状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3784984/