2014-11-24 3 views
2

내 질문은 어떻게 다른 컨트롤러간에 TempData를 전달할 수 있습니까? 당연히 컨트롤러 컨텍스트가 다르기 때문에 하나의 컨트롤러가 다른 컨트롤러의 tempdata에 액세스 할 수 없어야 만하는 반면 tempdata는 단일 컨트롤러의 컨텍스트 내에서 Action Results 사이를 단순히 통과 할 수 있어야합니다.컨트롤러간에 임시 데이터 전달

하지만 상황에 따라 컨트롤러 간 통신에 TempData가 필요하고 TempData가 요구 사항이 될 수 있다고 가정 해 봅시다 (좋은 연습인지 나쁜 방법인지에 관계없이) 이것이 가능합니까?

답변

2

예 TempData가 SessionState에 의해 백업되므로 가능합니다. 본질적으로 수명이 짧은 세션 상태의 특별한 경우입니다. 여기

는 비슷한 질문/대답 Passing data between different controller action methods

+0

감사를 RedirectToAction을 사용하지 않는, 내 경우에는 내가 다음 요청을위한 임시 데이터를 유지합니다

TempData.Keep(); 

이 전화했다는 것을 발견 어떤 검색을 종료 정답 TGH. 예제를 제공하는 것과 같이 정확하게 수행 할 수있는 방법에 대한 세부 정보를 조금 더 추가 할 수 있습니다. – JAX

+1

컨트롤러 내에서 액션 간을 전달하는 방법을 설명하는 크로스 컨트롤러가 아닌 – TGH

+0

링크를 추가했습니다. 컨트롤러 X가 컨트롤러 Y의 액션으로 리다이렉트하는 액션을 가지고 있다고하자. 이제 tempdata를 사용하면 controlelr y – JAX

0

TempData이 TempDataDictionary 클래스에서 파생 된 짧은 삶 세션에 저장된 사전이며 문자열 키와 객체 값을합니다. 차이점은 개체의 수명주기입니다. TempData는 HTTP 요청 시간에 대한 정보를 유지합니다. 한 페이지에서 다른 페이지로의 전환을 의미합니다. 동일한 HTTP 요청에 있기 때문에 302/303 리디렉션과도 작동합니다. 한 컨트롤러에서 다른 컨트롤러로 이동하거나 한 동작에서 다른 동작으로 이동할 때 데이터를 유지 보수하는 데 도움을줍니다. 리디렉션 즉, "Tempdata는"나뿐만 아니라이 검색되었습니다 What is ViewData, ViewBag and TempData?

0

자세한 내용은 그 리디렉션

사이에 데이터를 유지하는 데 도움이됩니다. 제 경우에는 임시 데이터에 일부 데이터를 삽입 한 ajax 요청을 수행했습니다. 나중에 나는 자바 스크립트를 다른 컨트롤러/액션으로 리디렉션 할 것이다. 후 사실에도 불구하고 당신은 당신의 환상적인 스트레이트

관련 문제