3

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

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

重定向有效,但重定向后临时数据为空。

我尝试使用相同的路由位置返回“ RedirectToAction”和“ RedirectToRoute”,虽然它填充了 TempData,但不会发生重定向,哈哈。

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

4

1 回答 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; }

...仍然有效。

于 2010-05-21T16:35:46.637 回答