2016-11-12 5 views
0

하루 종일이 오류로 고생하고 거의 모든 기사를 읽었으며 모든 힌트를 시도했지만 여전히 작동하지 못했습니다.PageMethods가 VS2013 웹 응용 프로그램에서 작동하지 않습니다.

참고 : 스크립트 관리자 내부 EnablePageMethod = 진정한 방법은 공공 및 정적 및

같은 코딩이 새로운 와 VS2010와 VS2013에서 빈 프로젝트를 모두 완벽하게 작동하지만, 사용 때 [웹 메쏘드]로 장식되어 있습니다 프로젝트 -> 웹 -> 웹 양식 출력물은 참조 용으로 첨부되어 있습니다. Error OutPut

여기 내 코드입니다.

코드 뒤에 :

[System.Web.Services.WebMethod] 
     public static string GetCurrentTime(string name) 
     { 
      return "Hello " + name + Environment.NewLine + "The Current Time is: " 
       + DateTime.Now.ToString(); 
     } 

자바 스크립트 :

<script type="text/javascript"> 
     function ShowCurrentTime() { 
      PageMethods.GetCurrentTime(document.getElementById("<%=txtUserName.ClientID%>").value, OnSuccess); 
      } 
      function OnSuccess(response, userContext, methodName) { 
       alert(response); 
      } 
    </script> 

HTML :

<div> 
     Your Name : 
      <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox> 
     <input id="btnGetTime" type="button" value="Show Current Time" onclick="ShowCurrentTime()" /> 
    </div> 
+0

사용중인 페이지의 코드면을 붙여 넣을 수 있습니까? 귀하의 페이지의 전체 마크 업을 의미합니다. – Sunil

답변

0

[System.Web.Services.WebMethod][System.Web.Script.Services.ScriptMethod]을 모두 서버 쪽 GetCurrentTime 방법에 추가해보십시오.

또한 스크립트 관리자가 EnablePageMethods="True"인지 확인하십시오. 귀하의 질문에 설정하면 EnablePageMethod = true 철자가 잘못되었습니다 (복수이어야합니다).

+0

둘 다 시도했지만 아직 작동하지 않습니다 ..! – BilalAhmed

+0

브라우저 개발자 도구를 열어 콘솔에 기록 된 오류를 확인하십시오. 질문에 기록 된 오류 메시지를 추가하면 실제로 도움이됩니다. –

0

포스트 백/페이지 전송을 방지하려면 click 이벤트 처리기를 실패해야합니다.

은 그냥 자바 스크립트 함수에서 거짓을 반환 :

function ShowCurrentTime() { 
    PageMethods.GetCurrentTime(document.getElementById("<%=txtUserName.ClientID%>").value, OnSuccess); 
    return false; // added 
} 
0

당신은 클라이언트 측에서 PageMethod를 호출 할 때 버튼을 다시 게시하지 않습니다 있는지 확인해야합니다. 현재 마크 업을 사용하면 다시 게시되어 예상치 못한 결과가 발생할 수 있습니다.

버튼에 대해 다음 마크 업을 사용해야하므로 게시되지 않습니다. 그럼 pagemethod에 대한 호출이 작동합니다. 아래의 마크 업에서 버튼 클릭 이벤트는 false 값을 반환하므로 페이지가 제출되지 않습니다. 즉 다시 게시됩니다.

또한 마크 업에 문제가있을 수 있으므로 페이지 마크 업을 전체적으로 게시하는 것이 가장 좋습니다.

<input id="btnGetTime" type="button" value="Show Current Time" 
        onclick="ShowCurrentTime();return false;" /> 
관련 문제