重定向上TempData的替代方法

时间:2019-01-22 07:45:32

标签: c# asp.net-mvc session asp.net-mvc-5 tempdata

在旧的旧项目中,我们有很多这样的代码:

var result = someService.AddRecord(data);
TempData["Success"] = result.Success;
TempData["Message"] = result.Message;
return RedirectToAction("Rakamakafo");

但是随后我们遇到了这样的情况,即请求在控制器中进行串行处理,这是由Session对象的锁定性质引起的,并通过将Session变为只读来解决了这一问题:

[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]

除了TempData对象(依赖于会话)停止工作之外,一切都很好。

如何在不将整个应用程序重写为AJAX的情况下以干净的方式解决此问题?

1 个答案:

答案 0 :(得分:0)

使用Cookie完成。首先,我用BaseController创建了ShowMessageAfterRedirect(bool success, string message)并设置了两个cookie(message_successmessage_caption),然后在显示部分视图的消息中,我从cookie中取回数据,删除它们。