2011-09-26 4 views
2

.aspx 페이지에서 단추를 클릭하면 페이지가 두 번로드됩니다. 첫 번째로드에서는 페이지의 IsPostBack 속성이 true이고 두 번째로드에서는이 속성이 false가되어 내 웹 사이트의 문제입니다.페이지의 단추를 클릭 할 때 .aspx 페이지가 두 번로드되는 이유는 무엇입니까?

아무에게도 왜 두 번로드되는 이유가 있습니까?

+0

ASP.NET 페이지 수명주기 - http://msdn.microsoft.com/ko-kr/library/ms178472.aspx를 읽고 특정 질문을하십시오. 너의 문제. – adatapost

+1

asp.net 페이지 수명주기를 알고 있습니다.하지만 왜 페이지를 두 번 다시로드합니까 ?? – ravidev

답변

3

게시의 가능한 수단을 두 번 다음과 같습니다

1가 명시 적으로 클라이언트 측에서 포스트 백을 만들고 있지 않은지 확인하십시오.

2- 페이지에서 img 태그의 src 속성이 비어 있지 않은지 확인하십시오. img 요소를 만들고 src 속성을 비워두면 자동으로 루트 디렉토리 (예 : "http://www.mysite.com/")로 설정됩니다. 따라서 Page_Load 이벤트가 처음으로 발생하면 원래의 포스트 백 (POST 요청)과 함께 Page.IsPostBack이 "true"로 설정됩니다. 하지만 서버 응답이 클라이언트 측에서 구문 분석 될 때 다른 GET 요청이 서버에 발생하여 이미지를 요청합니다 (src가 기본적으로 루트 URL로 설정 됨). 이것이 Page.IsPostBack 속성이 두 번째로 "false"값으로 초기화됩니다.

+0

전에 빈 이미지 태그를 본 적이 없습니다. – russau

1

버튼이 작동하려면 서버에 이벤트가 발생했음을 알리기 위해 포스트 백을 사용해야합니다.

ASP.Net주기가 작동하는 방식으로 단추를 클릭하는 등의 포스트 백 이벤트가 처리되어 해당 이벤트를 처리하는 방법을 알 수 있도록 페이지를로드해야합니다. 당신의 버튼을 리디렉션이 발생하는 경우 그래서 당신이 버튼을 클릭하면 페이지가이 시점에서, 페이지가 리디렉션 및 페이지 수명주기를 다시 시작됩니다 다음 이벤트

PreInit -> Init -> InitComplete -> PreLoad -> Load -> Your event handler 

를 호출합니다.

버튼이 무엇을하는지 정확히 알지 못하면 두 번째 페이지로드를 피할 수 있는지 말할 수 없습니다. 이벤트 코드를 공유하려는 경우이 대답을 업데이트 할 수 있습니다.

관련 문제