2016-12-26 3 views
0

По какой-то причине я создаю новый сеанс в методе действия моего контроллера. Но у меня есть TempData в моем ActionMethod1, и я хотел бы передать значение ActionMethod2 после создания нового изображения. Но после создания нового идентификатора сеанса мое значение TempData очистилось. Ниже приведен код для создания нового сеанса.Сохранять значение TempData после создания нового сеанса

System.Web.SessionState.SessionIDManager manager = new  
System.Web.SessionState.SessionIDManager(); 
string NewSession = manager.CreateSessionID(System.Web.HttpContext.Current); 

Пожалуйста, дайте мне знать, если любые другие возможные варианты сохранения значения tempdata даже после создания нового сеанса.

+0

насчет сохранения значений TempData в переменной, создать новую сессию и записать эти значения обратно в словарь TempData в тот же метод? – Felix

ответ

0

Но после создания нового идентификатора сеанса мое значение TempData очищено.

TempData хранится в состоянии сеанса. Вот почему значения удаляются.

Пожалуйста, дайте мне знать, если любые другие возможные решения сохранить значение tempdata даже после создания нового сеанса.

Вы должны быть в состоянии сделать что-то вроде следующего (непроверенные):

var oldTempData = TempData.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); 

System.Web.SessionState.SessionIDManager manager = new  
    System.Web.SessionState.SessionIDManager(); 
string NewSession = manager.CreateSessionID(System.Web.HttpContext.Current); 

foreach(var kvp in oldTempData) 
    TempData.Add(kvp.Key, kvp.Value); 
Смежные вопросы