2012-01-17 15 views
1

私はもともとajaxを使用していなかったプロジェクトを持っています。今、私はページajaxを有効にしたいと思っています。私がすでに行ったのは、ajaxToolkitをインストールし、web.configコンテンツをajax対応Webサイトの別のものに置き換えます。私は、スクリプトマネージャを追加しました:Asp.net ajax pagemethods not working

<form id="Form1" runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnableScriptGlobalization="True" /> 

は.csファイルの私の方法は、私のJavaスクリプト機能があり、この

[WebMethod] 
public static string[] CheckRating(string[] details) 
{ 
    string[] result = new string[] { "AAAAAAAAAAA", "" }; 
    return result; 
} 

次のようになります。

function someName() { 

     var details = new Array(); 
     details[0] = $("#HiddenFieldUsername").val(); 
     details[1] = "5310005003117"; 
     PageMethods.CheckRating(details, ss1, ss2); 
    } 
    function ss1(result, userContext, methodName) 
    { 
     $("#user_rating").show(); 
     $("#user_rating_text").html("Error User ratinh"); 
     alert("Sorry"); 
    } 
    function ss2(error, userContext, methodName) { 
     $("#user_rating").show(); 
     $("#user_rating_text").html("Error User ratinh"); 
     alert("Sorry"); 
    } 

それはここで取得するときに問題があります: PageMethods.CheckRating(details、ss1、ss2); 何も起こりません。 ss1またはss2のコードは実行されません。javaスクリプトは動作を停止します。

答えて

1

奇妙な、以下のWebフォームは私のために完全に正常に動作します:

<%@ Page Language="C#" %> 
<%@ Import Namespace="System.Web.Services" %> 
<script type="text/C#" runat="server"> 
    [WebMethod] 
    public static string[] CheckRating(string[] details) 
    { 
     string[] result = new string[] { "AAAAAAAAAAA", "" }; 
     return result; 
    } 
</script> 
<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <form id="Form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnableScriptGlobalization="True" /> 
    </form> 

    <script type="text/javascript"> 
     var details = new Array(); 
     details[0] = 'foo'; 
     details[1] = 'bar'; 
     PageMethods.CheckRating(details, ss1, ss2); 

     function ss1(result, userContext, methodName) { 
      alert(result[0]); 
     } 
     function ss2(error, userContext, methodName) { 
      alert("Error"); 
     } 
    </script> 
</body> 
</html> 

たぶん、あなたがカバーして送信されている実際のAJAX要求の下で起こるまさに確認するために、このようなFirebugのようjavascriptのデバッグツールを使用することができます応答と同様に。

+0

オブジェクトがプロパティまたはメソッド 'CheckRating'をサポートしていません – ice

+0

Visual Studioで新しいWebサイトを作成し、同じコードをコピーしました。それは今働く。 – ice