2011-11-23 37 views
2

我使用TempData在Post之后使用重定向传送消息。该控制器将TempData的如下所示:TempData有效,但延迟了一个请求

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

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

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

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

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

回答

0

当你这样做:当索引页面,你是哪个重定向呈现其观点

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

将显示该消息。

+0

的问题是,它不重定向的页面显示,但在之后的请求,而不是。请重读这个问题。 – MZywitza

1

您需要使用

TempData.Keep(key);