我们正在使用ASP.Net MVC TempData在页面刷新之间存储表单数据。我们在页面上有一个按钮,允许用户执行某个操作。如果用户单击此按钮一次,则可以正常工作。如果他们单击按钮两次(允许),我们将丢失TempData数据。无论用户单击按钮多少次,我们都需要确保保留TempData数据。顺便说一句,该按钮激活URL.Action,并使用Ajax。
答案 0 :(得分:5)
TempData.Keep()?
答案 1 :(得分:2)
我建议将数据放在Session而不是TempData,因为TempData只存储数据直到下一个Request的结尾。在您的情况下发生的情况是,用户每次单击按钮时都会发出请求,因此在第二个按钮单击时,TempData已被清除(或将在第一个请求结束时清除)。
您可以在第一次单击按钮后禁用该按钮,但这可能会导致解决方案不太稳健。使用Session和另一个AJAX请求清除第一个AJAX请求成功返回时Session中的数据将确保您知道返回的第一个AJAX请求和Session中的数据可以被清除
答案 2 :(得分:0)
无论用户点击按钮多少次
,我们都需要确保保存TempData数据
TempData是将数据传递给下一个动作/请求。这更像是Session的一个案例。
如果您仍想使用TempData,请确保所有相关的控制器操作再次设置相同的TempData值。