2010-07-16 3 views
0

내 ASP.NET WebForms 응용 프로그램에는 UpdatePanel 및 인터페이스와 같은 마법사에 사용되는 여러보기가 포함 된 WebForm이 있습니다.다른 ASP.NET WebForm에 데이터 게시

마법사가 끝나면 버튼을 클릭하여 다른 페이지로 이동할 수 있습니다. 이 새 웹 페이지에는 이전 페이지의 컨트롤에서 약 5 개의 값이 필요합니다.

가장 간단한 방법은 무엇입니까? (편집 : 만 데이터는 HTTP POST를 사용하여 - 이것이 내가 데이터베이스/세션 그렇지 않으면 사용 하듯이 요구 사항입니다)

나는 아마도 때문에 내 업데이트 패널과 여러 뷰의, 행운과 cross-page posting를 사용하여 시도를?

Server.Transfer를 사용해 보았습니다.하지만이 문제는 업데이트 패널로 인해 중단됩니다. 중요

:

  1. 데이터는 HTTP POST를 통해 전송되어야한다 - 데이터는 어디
  2. 저장할 수없는 시나리오는 변경할 수 없습니다. 모든 것을 같은 페이지에 넣을 수는 없습니다.

답변

0

리디렉션 된 페이지에 표시해야하는 데이터를 설명하는 클래스를 만들 수 있습니다. 사용자가 마법사 데이터를 채울 때 새 인스턴스를 구성하고 필요한 정보로 새 클래스의 객체를 채운 다음 페이지 리디렉션 전에 button_Click 이벤트로 세션에 추가합니다. 리디렉션 된 페이지에서 Session 객체를 잡고 변수에 넣은 다음 필요한 데이터를 추출합니다.

+0

5 개의 값 (다소 관련이 없음)에 대해 새 클래스를 만드는 것이 의미가 없으면 강제로 실행하지 마십시오. –

+0

나는 반드시 HTTP POST만을 사용해야한다고 언급하는 것을 잊어 버렸다. – Omar

+0

세션 객체를 처리 할 때 - 5가 아닌 하나의 정보를 관리하는 것이 좋습니다. 프로젝트가 진행됨에 따라 요구 사항이 변경됨에 따라 5의 수는 쉽게 8, 10 또는 그 이상으로 증가 할 수 있습니다. – TheGeekYouNeed

1

이 작업을 수행하는 가장 간단한 방법은 해당 값을 세션 개체에 넣는 것입니다.

+0

언급을 잊어 버렸으므로 HTTP POST 만 사용해야합니다. – Omar

0

사용자가 솔루션의 다른 페이지로 이동하는 경우 몇 가지 옵션이 있습니다.

  1. ViewState - ViewState는 페이지 배달과 함께 전송됩니다. 이 파일은 HTML에 있지만 암호화되어 있으므로 아무도 정보를 볼 수 없습니다. 정보의 크기에 따라 페이지 크기가 다소 커질 수 있습니다.
  2. 세션 - 쿠키를 통해 정보를 클라이언트 측에 전달합니다.
  3. 쿼리 문자열 - URI 사용. 중요하지 않은 정보이고 사용자가 다시 동일한 작업으로 다시 연결하지 못하게하려는 경우에만 사용해야합니다.
+0

'나는 반드시 HTTP POST 만 사용해야한다'는 것을 잊었습니다. – Omar

+0

ViewState가 그때가는 길입니다. 검색 할 수있는 정보의 정적 집합이라면 다음 페이지의 page_load에서 Carter가 말한 것을 수행하고 조회 (enum을 사용합니다)를 수행하십시오. –

0

모든 관련 페이지를 하나로 결합하는 것이 좋습니다. 재생되지 않는 패널을 숨 깁니다. ASP.NET은 게시에서 게시까지 모든 컨트롤의 값을 유지 관리합니다. Viewstate는 당신이 묘사하는 것처럼 풍경을 위해 디자인되었습니다. Viewstate 크기를 최소한으로 유지하려면 "Init"메서드의 드롭 다운 컨트롤에 대한 조회 값을 입력해야합니다.

세션 상태를 사용하지 않으려합니다. 마지막으로 사용자가 대답하기에는 너무 오래 걸리므로 사용자가 이전 페이지에서 데이터를 잃어 버리는 것입니다.