2012-01-23 3 views
5

내 .aspx 페이지에있는 메소드로 AJAX 요청을 처리하려고합니다. 어떤 이유로 나는 원하는 데이터가 반환되지 않습니다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?서비스 ASPX 페이지의 웹 메소드 AJAX 요청

mypage.aspx :

<%@ Page Language="VB" Title="My Page" %> 
<%@ Import Namespace="System.Web.Services" %> 
<%@ Import Namespace="System.Collections.Generic" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<script runat="server"> 

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) 

    End Sub 

    <WebMethod()> Public Function testmethod() As Integer 
     Return 5 
    End Function 

</script> 

<html> 
<!--...rest of page including mybutton and myresults--> 

JQuery와 : 말합니다와 HTML의 다음 훨씬 :

Unknown web method testmethod. 
Parameter name: methodName 
을 :

$("#mybutton").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "mypage.aspx/testmethod", 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
     alert("success"); 
     $("#myresults").html(msg.d); 
     }, 
     error: function(msg) { 
     alert("error:" + JSON.stringify(msg)); 
     } 
    }); 
}); 

내가 경고 "오류"를 얻을 mybutton을 클릭

답변

12

방법은 Shared 할 필요가 :

<WebMethod()> Public Shared Function testmethod() As Integer 
    Return 5 
End Function 

을 또한, 나는 당신이 파일 뒤에 코드-A를 사용하지 않는 경우 해당 페이지의 방법이 지원됩니다 모르겠어요.

+0

감사합니다. 이로 인해 문제가 해결되었습니다. – Flash

+2

추가하려면 - C#에서 - '정적'이어야합니다. – Lijo

0

전달되는 오류는 무엇입니까 ?? 전체 html 페이지를 보는 이유는 코드에 오류가 있기 때문이며 전달되는 msg는 오류가있는 전체 HTML입니다. 나는 당신이 오류를 수정한다면 당신은 괜찮을 것이라고 확신한다.

코드 숨김 오류 메시지가 표시 될지 잘 모르겠습니다. 기억하십시오 - Ajax 섹션에서 호출되는 성공 또는 오류 함수는 webservice 메소드가 성공적으로 호출되었는지 여부에 따라 호출됩니다. 나는 당신이 여기에 teh webmethod로부터의 에러 메시지를 볼 것이라고 생각하고 있다고 생각하지만 실제로는 webmethod가 에러를 던지면 여전히 성공적인 ajax 호출을 할 것이고 따라서 "success"함수가 실행 중일 것이다. "오류"기능은 전체 webmethod 호출이 실패 할 때만 실행되므로 서버의 응답이 없습니다.

희망이 있습니다.

+0

내가 게시 한 후 이것을 깨달았습니다. 나는 질문의 맨 뒤에 오류 메시지를 포함 시켰습니다. – Flash