TempData работает, но задерживается одним запросом

Я использую TempData для переноса сообщений с Redirect после публикации. Контроллер устанавливает временные данные, как показано здесь:

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

В _Layout.cshtml у меня есть следующий фрагмент:

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

Моя проблема сейчас в том, что после перенаправления сообщение не отображается. Однако по запросу, который следует сразу за перенаправлением (обновить или любую другую страницу), отображается сообщение. После отображения он удаляется из сеанса, как и ожидалось.

Как сделать так, чтобы мои TempData отображались на странице, на которую я перенаправляю?

2 ответа

Вам нужно использовать

TempData.Keep(key);

Когда вы делаете:

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

Сообщение будет отображаться, когда страница указателя, на которую вы перенаправляете, отображает свой вид.

Другие вопросы по тегам