TempData可以工作,但会被一个请求延迟

时间:2011-11-23 13:36:19

标签: asp.net-mvc-3 tempdata redirect-after-post

我正在使用TempData在发布后使​​用Redirect传送邮件。控制器设置tempdata,如下所示:

TempData["message"]="foo";
return RedirectToAction("Index");

在_Layout.cshtml中,我有以下片段:

@{var temp = TempData["message"] as string; }
@if ( temp != null)
{
     <div class="message">@temp</div>
}

我现在的问题是,重定向后,不会显示该消息。但是,在紧接着重定向(刷新或任何其他页面)之后的请求上,将显示该消息。显示后,它将按预期从会话中删除。

如何在我重定向到的页面上显示TempData?

2 个答案:

答案 0 :(得分:1)

您需要使用

TempData.Keep(key);

答案 1 :(得分:0)

当你这样做时:

TempData["message"] = "foo";
return RedirectToAction("Index");

当您要重定向的索引页面呈现其视图时,将显示该消息。