2008-10-14 2 views
0

나는 내 인생에서 그 문제를 발견 할 수 없기 때문에 누군가가 전에 이것을 보길 바란다.ASP.NET의 뒤로 버튼에서 무작위 Page_Load를 호출합니다.

응용 프로그램에서 이전의 "수정 단추를 다시 잡으려고"노력하고 있습니다. 꽤 괜찮은 접근 방식이 있다고 생각합니다. 문제는 응용 프로그램이 페이지를로드 할 때 페이지를로드하지 않을 때 대신 호출한다는 것입니다. 캐시 된 버전의 페이지를로드합니다.

정확히 내 페이지의 약 60 %에 해당합니다. 그것은 캐시 된 버전을로드하고 모두 잘됩니다. 나머지 40 %에서는 back_button_load 호출을 클릭하여 새로 고침을 강제합니다. 참조를 위해 page_load에 대한 호출은 포스트 백에 없습니다.

낯선 사람이라도 IE (6 & 7)에서만 발생합니다. Firefox에서는 page_load가 호출되지 않습니다.

두 가지 유형의 페이지 모두에서 ASP.NET Ajax 프레임 워크를 사용하고 있습니다. 이런 식으로 본 사람 있습니까? 더 내가 검색을 사용할 때 한 페이지에서 응용 프로그램이 서로 다른 페이지를 다르게 작동 다른 이동하는 것을 찾는거야 조금 조사 후

--Update--

합니다. 깨진 페이지에서 page_load는 두 번 호출되고 검색은 두 번 호출되고 피들러에서는 두 번째 리다이렉션 다시 게시로 바뀌고 no-cache set이 설정됩니다.

작업 페이지에서 page_load 및 검색은 한 번만 수행되며 즉시 리디렉션됩니다.

두 번째 Response.Redirect가 문제의 원인입니다. 왜 그것이 일어나고 있는지 아직 확실하지 않습니다.

답변

1

확인 서버가 Cache-Control HTTP 헤더에 대한 반환하는 것, 다음 Response.Cache.SetCacheability()를 설정하려고/서버는 페이지 출력 캐시 페이지 지시문을 사용하여 볼을 말하는 경우 페이지를 캐싱해야합니다.

+0

그냥 피들을 뽑아 확인했습니다. 새로 고치고 캐시 제어를 수행하지 않는 페이지가 모두 비공개로 설정됩니다. – JoshReedSchramm

+0

재미있는 것을 발견했습니다. 나는 그것을 일으키는 수색이라고 생각한다. 이 페이지는 검색 후 no-cache를 반환하지만 정상로드를 따르지는 않습니다. – JoshReedSchramm

0

ASP.NET AJAX를 사용하는 경우 기록 서버 컨트롤 개체를 사용하지 않는 이유는 무엇입니까?

History를 바꾸면 뒤로 버튼이 원하는 링크로 이동합니다.

try this

+0

ID는 실수이지만, 앱의 모든 페이지 또는 마스터 페이지에 잘못 입력해야합니다. scriptmanager 태그가 서브 페이지에 있으므로 마스터 페이지를 넣을 수 없습니다. 따라서 ID는 모든 페이지를 변경해야하며 in-production 응용 프로그램의 경우 너무 위험합니다. – JoshReedSchramm

관련 문제