2012-01-23 7 views
5

私の.aspxページ内のメソッドでAJAXリクエストを処理しようとしています。何らかの理由で、私はデータが返されないようにしています。誰か私が間違っていることを教えてもらえますか?サービスASPXページのWebメソッドを使用した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 

また、私はあなたのコードビハインドファイルを使用しないときにページのメソッドがサポートされていることはよく分かりません。

+0

ありがとう、これは問題を解決しました。 – Flash

+2

追加するには - C#で - 静的にする必要があります – Lijo

0

返されているエラーは何ですか? HTMLページ全体が表示されているのは、コードにエラーがあり、返されているmsgが、エラーがどこにあるかを示す完全なhtmlであるためです。私はあなたがエラーを修正するなら、あなたは大丈夫だろうと確信しています。

コードビハインドからエラーメッセージが表示されることが予想されるかどうかはわかりません。覚えておいてください - Ajaxセクションで呼び出される成功関数またはエラー関数は、Webサービスメソッドが正常に呼び出されたかどうかによって呼び出されます。私はここであなたがエラーメッセージを見ていると思っていると思うが、実際には、webmethodがエラーをスローしている場合、あなたはまだ成功したajax呼び出しを持っているので、 "success"関数が実行される。 「エラー」機能は、webmethod呼び出し全体が失敗した場合にのみ実行されるため、サーバーからの応答はありません。

希望は意味があります。

+0

私が投稿した後、私はこれを認識しました。私は質問の最後にエラーメッセージを含めました。 – Flash

関連する問題