2016-12-26 5 views
0

어떤 이유로 컨트롤러의 동작 메서드에서 새 Session을 만들고 있습니다. 그러나 나는 내 ActionMethod1에 TempData를 가지고 있고 새로운 Seesion을 생성 한 후에 ActionMethod2에 값을 전달하려고합니다. 하지만 새 세션 ID를 만든 후에는 내 TempData 값이 지워졌습니다. 아래 코드는 새로운 세션 ID를 생성하는 데 사용되었습니다.새 세션을 만든 후 TempData 값을 유지하십시오.

새로운 세션을 생성 한 후에도 임시 데이터 가치를 유지할 수있는 다른 해결책이 있는지 알려 주시기 바랍니다.

+0

변수에 TempData 값을 저장에 대해 새로운 세션을 생성하고 TempData 사전에서 다시 그 값을 기록 무엇 같은 방법? – Felix

답변

0

하지만 새 세션 ID를 만든 후에 내 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); 
관련 문제