2014-05-12 2 views
0

내장 asp.net 웹 응용 프로그램 Web Forms 템플릿을 사용하여 VS 2013 프로젝트를 만들었습니다. 페이지의 Page_Load 메서드에 중단 점을 추가하면 F5 키를 누를 때와 페이지가 나타날 때 사이에 메서드가 두 번 실행됩니다. 왜? 그리고이 행동을 멈추게 할 수 있습니까?Page_Load 메서드를 두 번 실행합니다.

충분한 정보를 제공하지 못해 사과드립니다. 이 코드는 VS Exp 2013에서 웹용으로 생성 한 바닐라의 손길이 닿지 않은 템플릿 코드입니다.

영문 파일은

<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="mycompanyname.B1WebApp.About" %> 

입니다 ~/Site.Master 비어를 Page_Load 방법 (이 관련이 확실하지)

코드 뒤에 이것은

public partial class About : Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Boolean Nothing; 
    } 
} 
+0

페이지로드 코드를 게시 할 수 있습니까? – Jameem

+0

흠 - Page_load는 명시 적으로 명시하지 않는 한 페이지 수명주기마다 한 번만 호출해야합니다. 그러나 사용자 컨트롤이나 이와 유사한 경우 마스터 페이지/상위 페이지에서 여러 번 사용할 수 있습니까? –

+0

이 문제를 해결할 수있는 유일한 방법은 Page_load 메서드를 삭제하고 페이지로드 메서드를 다시 입력하거나 페이지를 삭제 한 다음 다시 만듭니다. –

답변

1

:

당신은 페이지로드에 대한 검사를 할 필요가 pageload가 두 번 실행되게합니다 ...

+0

감사합니다. 매우 도움이됩니다. 이것은 VS가 만든 바닐라 템플릿 프로젝트가 Page_Load 메서드에서이 체크를했다면 도움이 될 것입니다.이 코드는 페이지가로드 될 때 코드를 실행하려고하는 모든 사람들을 끌어 들이기 때문에 반드시 도움이됩니다. 아니면 페이지로드시 다른 곳에서 한 번만 실행해야하는 코드를 넣어야합니까? – FalconRime

+0

처음 실행해야하는 코드는 pageload ...에 넣을 수 있습니다. pageload가 다시 실행될 때 ... 버튼 클릭이나 포스트 백이 발생하면! ispostback은 pageload의 코드 라인이 다시 실행되는 것을 방지합니다. – Jameem

1

입니다있다 서버 컨트롤이 페이지에서 사용될 때마다 페이지 자체가 다시 게시됨에 따라 asp.net 웹 양식 부분. 이것은 영원히 이와 같이되었습니다. 당신이 할 수있는이 마스터 페이지와 !IsPostBack

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      //Your code here 
     } 
    } 

각 포스트 백에 사용자 제어 작업 pageload 기능을 피할 수

if(!IsPostBack) 
{ 
//Code for first time load 
} 
else 
{ 
// code whenever you have a postback 
} 
+0

감사합니다. 방법을 알면 매우 쉽습니다. 나는 그렇지 않았다. 당신의 도움을 주셔서 감사합니다. 위의 else 문에 어떤 코드를 넣으시겠습니까? 그리고 그것은 제가 두 번 관찰 한 것보다 더 많이 처형 될 수 있습니까? – FalconRime

관련 문제