2011-12-02 4 views
0

한 컨트롤러에서 다른 컨트롤러로 소량의 데이터를 전달할 때 ViewBag를 사용합니까? ViewData? 또는 세션 ... 등 ... 올바른 접근 방식입니다.MVC3 컨트롤러에서 다른 컨트롤러로 데이터 전달

내 첫 번째 [Controller1]/[Action : Register]는 사용자 ID를 생성 한 다음 다른 컨트롤러로 리디렉션되어야합니다.

return RedirectToAction ("Create", "Controller2");

그런 다음에 만들기 (HttpPost) 나는 데이터 + 플러스 데이터베이스에 대한 사용자 ID를 저장 한 후 데이터 + 플러스 데이터베이스에 대한 사용자 ID를 저장 HttpPost에 같은 방식으로 역할을 다음 컨트롤러로 리디렉션하고 있습니다.

난 그냥 URL에 전달, 그 개인 그렇지 않으면 당신에게

답변

2

감사, 조금 나는 안전한 방법/올바른 방법? 제발 조언에 사용자 ID를 전달 어떻게, 취해야하는 방법 손실입니다 당신의 리디렉션에서 세 번째 매개 변수를 사용하여 : 그것은 개인 데이터의 경우 새로운 {ID = whateverValue}

것은, TempData를 사용 -이 제거됩니다 다음 요청이 그것을 읽어 후

+0

감사 RouteValueDictionary을 확인하고 컨트롤러 # 3를 호출 할 때 TempData를 사용할 수 없습니다 컨트롤러 # 2에서만 사용 가능합니다. 프로세스 전반에 걸쳐 어떻게 유지합니까? 감사합니다, – Ben

+0

세션을 사용하고 있습니까? – Ben

+0

세션은 정상입니다. 완료되면 제거하는 것만 기억하십시오. –

0
(물론 요청의 끝에서)

저는 이것을 달성하기 위해 경로 값을 활용할 수 있다고 생각합니다. 다음은 예입니다

return RedirectToAction("Create", "Controller2", new { userId = myVar }); 

경로 값에 대한 자세한 내용은, 내가 URL에 표시하지 않도록 ID를 원하는 http://msdn.microsoft.com/en-us/library/system.web.routing.routevaluedictionary.aspx

+0

감사합니다. ID가 URL에 표시되는 것을 원하지 않습니다. – Ben

관련 문제