2011-08-29 3 views
1

최종 사용자가 작성해야하는 일련의 페이지가 있고 (확인란) 각 페이지가 끝나면 선택한 확인란 목록을 만들려고합니다. 일련의 페이지가 끝나면 확인 페이지에서 선택한 모든 것을 보여주고 싶습니다. 요청 사이에 각 페이지에 작성한 목록의 정보가 최종 확인 페이지에서 사용 가능하지 않음을 알았습니다. 나는 몇 가지 다른 솔루션 (개인 전역)을 사용해 보았습니다. 선택한 페이지의 모든 데이터를 확인 페이지에 표시하려면 ActionResults에서 데이터를 어떻게 전달합니까? 감사.MVC 3의 ActionResults에서 데이터를 전달하려면 어떻게해야합니까?

One potential solution. 기타?

답변

2

웹은 상태가 저장되지 않습니다. 나중에 사용할 수 있도록 보관하려는 경우 저장소에 보관해야합니다. 이는 모든 웹 프레임 워크에서 마찬가지입니다. 각 페이지의 결과를 어딘가에 저장해야합니다. 마법사를 구축하기위한

옵션 :

  • 스토어 세션에서 선택한 답변의 모든 페이지에서 페이지를 구축하고 유지한다. 최종 확인은 세션에서 결과를 얻습니다.
  • 데이터베이스에 저장하십시오.
  • 결과를 쿠키에 저장하십시오.
  • HTML5 로컬 저장소에 저장하십시오.
  • 숨겨진 필드가있는 각 페이지에서 이동하십시오. 페이지 2는 숨겨진 필드 등에서 Page 1의 답변을 얻습니다.
+0

감사합니다. 매우 명확한. – decompiled

+0

btw MVCContrib의 Html.Serialize를 사용하여 이런 식으로 객체를 유지할 수 있습니다. 이 방법은 교차 페이지 뷰 스테이트를 사용하는 방식으로 마법사의 뷰 모델을 숨겨진 필드에 쉽게 직렬화 할 수 있습니다. 사용자가 조작 할 수있는 숨겨진 필드가 있으면주의해야합니다. –

0

당신은

here가 Initialy 당신이 숨겨진 필드에 필요한 변수를 유지하고 모든 요청을 통해 완전히 모델을 보낼 필요가 보일 것입니다.

1

요청 사이에 상태를 저장해야합니다. 당신은이 작업을 수행 할 수 있습니다 :

  1. 쿼리 문자열 매개 변수
  2. 세션 상태
  3. 숨겨진 필드
  4. DB를
  5. 로컬 저장소
  6. 쿠키 (당신 싶어 각 요청 후 중간 선택을 지속하는 경우)

다른 건 없습니까?

RyanW가 지적했듯이 세션 상태로 저장하는 것이 일반적인 방법입니다. 그러나 한 번의 요청으로 모든 단계를 가져올 수 있습니다. 몇 가지 고급 JS/중간 결과를 로컬에 저장하고 설문이 완료되면 최종 게시물을 작성할 수 있습니다.

관련 문제