2009-11-19 7 views
1

내가 가지고에서 .aspx 페이지에서 다음 버튼 :하여 .aspx.cs에서 다음과 같이C# 버튼을 클릭

<asp:Button runat="server" ID="bntLogin" OnClick="bntLogin_Click" Text="Login" /> 

:

protected void bntLogin_Click(object sender, EventArgs e) 
     { 
      // 
     } 

것은 내가 얻을를 구축하려고하면 다음 오류 :

'ASP.reserve_aspx'에 'bntLogin_Click'에 대한 정의가없고 'ASP.reserve_aspx'유형의 첫 번째 인수를 허용하는 확장 메서드 'bntLogin_Click'이 없습니다 (사용 지시문이 누락 되었습니까? ve 또는 어셈블리 참조?) 코드 이벤트에서 마크 업 내부의 스크립트 블록으로 click 이벤트를 이동하면 빌드가 발생합니다.

아이디어가 있으십니까?

답변

7

올바른 코드 숨김 파일에 메서드를 배치 했습니까?

@page 지시문을 aspx 파일의 맨 위에 표시하여 확인하십시오 (inherits 속성 확인). 놀랄 수 있습니다.


느슨하게 관련 보조 노트 : 방법에 해당하는 문자열 값으로 OnClick을 설정하여 당신은 당신이 암시 적으로 내가 생각하지 않는 ASP.NET의 AutoEventWireup 기능에 의존하고 호출 할 좋은 접근 방법입니다. 수동으로 같은 페이지의 OnInit 재정의 메서드에 컨트롤을 배선하는 것이 좋습니다 : 당신은 당신을 위해이 코드를 생성하기 위해 ASP.NET 런타임을 허용하고으로 AutoEventWireup에 의존하여

bntLogin.Click += bntLogin_Click; 

이 실행시 발생 이후 당신은 실행 시간 퍼포먼스뿐만 아니라 지금보고있는 것과 같은 예외를 위험에 빠뜨리고 있습니다.

+0

그래, 나는 올바른 코드 숨김으로 올바른 클래스를 상속 받았다. – Neil

+0

좋아요, aspx 파일에서'OnClick' 속성을 제거하고 위에 게시 한 코드를 추가하십시오. –

+0

내 이해는 AutoEventWireup을 사용하는 경우 aspx에서 OnClick과 같은 이벤트 처리기를 명시 적으로 선언 할 필요가 없다는 것입니다. – recursive

0

나는 보통 ASP.NET 1.1 (설계자가 다시 넣어 것입니다 곳이 있습니다.)

0

혹시 당신했을 경우에서 홀드 오버입니다 코드 숨김의하는 OnInit 방법의 이벤트를 연결 여전히 ASP.NET 1.1을 실행하고 aspnet_client 폴더를 삭제하고 다시 빌드하고 다시 시도하십시오.

관련 문제