Сохранить значение TempData после создания нового сеанса

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

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

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

1 ответ

  1. Но после создания нового идентификатора сеанса мое значение 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);