我们使用 ASP.Net MVC TempData 在页面刷新之间存储表单数据。我们在页面上有一个按钮,允许用户执行特定操作。如果用户单击此按钮一次,它工作正常。如果他们两次单击该按钮(这是允许的),我们将丢失 TempData 数据。无论用户单击按钮多少次,我们都需要确保保留 TempData 数据。顺便说一下,该按钮激活了一个 URL.Action,并利用了 Ajax。
问问题
4526 次
3 回答
5
TempData.Keep()?
于 2010-10-18T10:23:15.973 回答
2
我建议将数据放在 Session 中而不是 TempData 中,因为 TempData 仅将数据存储到下一个请求的末尾。在您的情况下发生的情况是用户每次单击按钮时都会发出请求,因此在第二次单击按钮时,TempData 已经被清除(或将在第一次请求结束时被清除)。
您可以在第一次单击按钮后禁用该按钮,但这可能会导致解决方案不够稳健。使用 Session 和另一个 AJAX 请求清除第一个 AJAX 请求返回成功时所做的 Session 中的数据将确保您知道第一个 AJAX 请求返回并且可以清除 Session 中的数据
于 2010-09-24T07:32:55.103 回答
0
无论用户单击按钮多少次,我们都需要确保保留 TempData 数据
TempData 是将数据传递给下一个动作/请求。Session 更是如此。
如果您仍想使用 TempData,请确保所有相关的控制器操作再次设置相同的 TempData 值。
于 2010-09-24T17:20:40.490 回答