我可以在Response.Redirect中使用TempData吗?

问题描述 投票:3回答:1

我正在使用ASP.net MVC 2框架,用于多个站点。我们有一个基站,然后是从“核心”站点继承的子站点,该站点包含子站点将使用的90%的功能。

在其中一个控制器中,我保存了一些数据,向tempData添加了一条UI消息,然后使用了Response.Redirect。

重定向有效,但重定向后tempdata为空。

我尝试使用相同的路由位置返回“RedirectToAction”和“RedirectToRoute”,当它填充TempData时,重定向不会发生大声笑..

所以我想简而言之,有没有办法让tempdata在使用标准的Res​​ponse.Redirect时工作?

asp.net asp.net-mvc asp.net-mvc-2 url-redirection
1个回答
2
投票

TempData用于重定向。但是在MVC 2+中,读取TempData会导致令牌被删除。所以这样的代码:

if (!string.IsNullOrEmpty(TempData["Foo"].AsString()) { foo =  TempData["Foo"].AsString(); }

......现在已经破了。但是这段代码:

var bar = TempData["Foo"].AsString();
if (!string.IsNullOrEmpty(bar)) { foo = bar; }

......仍然有效。

© www.soinside.com 2019 - 2024. All rights reserved.