Могу ли я использовать TempData с Response.Redirect? - PullRequest
3 голосов
/ 21 мая 2010

Я работаю с ASP.net MVC 2 framework для нескольких сайтов. У нас есть базовый сайт, а затем дочерние сайты, которые наследуются от «базового» сайта, который содержит 90% функциональных возможностей, которые будут использовать дочерние сайты.

В одном из контроллеров я сохраняю некоторые данные, добавляю сообщение пользовательского интерфейса в tempData и затем использую Response.Redirect.

Перенаправление работает, но после перенаправления tempdata пуст.

Я попытался вернуть "RedirectToAction" и "RedirectToRoute" с одним и тем же местоположением маршрутизации, и пока он заполняет TempData, перенаправление не происходит, lol ..

Итак, я думаю, вкратце, есть ли способ заставить работать временные данные при использовании стандартного Response.Redirect?

1 Ответ

2 голосов
/ 21 мая 2010

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; }

... все еще работает.

...