ASP. NET 페이지 전송 값 의 Server. Transfer

http://blog.csdn.net/bdstjk
말하자면 좀 부 끄 럽 습 니 다. 이렇게 오랫동안. NET 을 했 는데 오늘 에 야 비로소 Server. Transfer 를 알 게 되 었 습 니 다.
먼저 코드 를 보 겠 습 니 다.
B.aspx
        public string TextBox1Text
        {
            get
            {
                return TextBox1.Text;
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Server.Transfer("A.aspx");
        }

A.ASPX
 protected void Page_Load(object sender, EventArgs e)
        {
            B b = Context.Handler as B;//   B     
            if (b != null)
            {
                Response.Write("   A.aspx !<br/>");
                Response.Write("  B      :"+b.TextBox1Text);
            }
            else
            {
                Response.Write("      !<br/>");
            }
        }

 
이것 이 야 말로 이미지 대상 개발 에 사용 되 는 방법 이 라 고 할 수 있 습 니 다. Server. Transfer 방법 으로 절 차 를 현재 페이지 에서 다른 페이지 로 유도 하고 새로운 페이지 는 이전 페이지 의 응답 흐름 을 사용 하기 때문에 이 방법 은 완전 이미지 대상 이 고 간결 하고 효과 적 입 니 다.
Server. Transfer 는 현재 의 ASPX 페이지 에서 새로운 ASPX 페이지 로 넘 어 가 는 것 입 니 다. 서버 쪽 에서 새 페이지 를 실행 하고 출력 합 니 다. 새 페이지 에서 Context. Handler 를 통 해 이전 페이지 에서 전 달 된 각종 데이터 형식의 값, 폼 데이터, QueryString 을 얻 을 수 있 습 니 다. 서비스 쪽 에서 완전히 리 셋 되 기 때문에 클 라 이언 트 브 라 우 저의 URL 주 소 는 변 하지 않 습 니 다.Server. Transfer 를 호출 할 때 현재 ASPX 페이지 는 실행 을 중지 하고 실행 절 차 는 다른 ASPX 페이지 로 넘 어 갑 니 다. 그러나 새로운 ASPX 페이지 는 이전 ASPX 페이지 에서 만 든 응답 흐름 을 사용 합 니 다.
ps: Server. Transfer 와 Response. Redirect 의 차 이 를 비교 합 니 다.
(1) Server. Transfer 는 서버 에서 이 루어 지기 때문에 클 라 이언 트 브 라 우 저의 URL 주 소 는 변 하지 않 습 니 다.Response. Redirect 는 클 라 이언 트 가 완성 하고 서버 측 에 새로운 페이지 처리 요청 을 하기 때문에 클 라 이언 트 브 라 우 저의 URL 주 소 는 변 경 됩 니 다.
(2) Server. Transfer 는 서버 에서 완성 되 고 클 라 이언 트 가 요청 할 필요 가 없 으 며 클 라 이언 트 가 서버 에 요청 하 는 것 을 줄 였 습 니 다.
(3) Server. Transfer 는 로 컬 가상 디 렉 터 리 가 지정 한 페이지, 즉 프로젝트 의 페이지 로 만 이동 할 수 있 고 Response. Redirect 는 매우 유연 하여 모든 URL 주소 로 이동 할 수 있 습 니 다.
(4) Server. Transfer 는 이전 페이지 의 다양한 종류의 값 을 새로운 페이지 로 전달 할 수 있 습 니 다.Response. Redirect 는 URL 에 있 는 매개 변 수 를 사용 하거나 위의 네 가지 방법 을 결합 하여 각종 유형의 값 을 새로운 페이지 로 전달 할 수 있 습 니 다.
장점: 1. 서버 에서 직접 방향 을 바 꾸 고 사용 이 간단 하고 편리 하 며 클 라 이언 트 가 서버 측 에 요청 하 는 것 을 감소 합 니 다.2. 각종 데이터 형식의 값 과 컨트롤 의 값 을 전달 할 수 있 습 니 다.
단점: 1. 클 라 이언 트 브 라 우 저의 URL 주 소 는 변경 되 지 않 아 새로운 페이지 에 예상 치 못 한 문제 가 발생 할 수 있 습 니 다.예 를 들 어 원본 페이지 와 목적 페이지 가 같은 가상 디 렉 터 리 나 하위 디 렉 터 리 에 없 으 면 상대 경로 의 그림, 하이퍼링크 를 사용 하면 잘못된 방향 을 가 져 올 수 있 습 니 다.
사용 방법: 1. 원본 페이지 의 코드 에서 Page 류 의 Server. Transfer 를 사용 하여 다른 페이지 로 이동 하여 페이지 데 이 터 를 전달 합 니 다: Server. Transfer ("b. aspx", "false");2. 목적 페이지 에서 Context. Handler 를 사용 하여 데 이 터 를 수신 합 니 다: FormerPage formerPage = (FormerPage) Context. Handler; 그리고 formerPage 의 속성 과 방법 으로 이전 페이지 의 값 을 가 져 오 거나 Context. Items ["my Parameter"] 를 직접 사용 합 니 다.

좋은 웹페이지 즐겨찾기