2011-08-03 45 views
2

我創建一個簡單的Web方法從Java script..But訪問訪問一個WebMethod我不能無法從Javascript

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
    <script type="text/javascript"> 


     $(document).ready(
     function test() { 
      var x = PageMethods.MyMethod(); 
      alert(x.toString()); 
     }) 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" EnablePartialRendering="true"> 
     </asp:ScriptManager> 
    </div> 
    </form> 
</body> 
</html> 

後面的代碼看起來像這樣

[WebMethod] 
     public static string MyMethod() 
     { 
      return "Hello"; 
     } 

變x是空的。 Iam無法弄清Iam錯過了什麼?有什麼幫助?由於提前

+0

你在哪裏調用函數'test'? –

+0

@Chris ..文檔準備就緒時自動調用 – Ananth

回答

3

您需要定義這是在從Web方法響應的收據調用的回調函數:

$(document).ready(
    function test() { 
     PageMethods.MyMethod(myMethodCallBackSuccess, myMethodCallBackFailed); 
    }) 

    function myMethodCallBackSuccess(response) { 
     alert(response); 
    } 

    function myMethodCallBackFailed(error) { 
     alert(error.get_message()); 
    } 

您還可以將參數傳遞給方法,但是這些必須始終之前來成功和失敗回調。

注意:你不需要包含失敗的回調,但它是可用的,如果需要的話。

+0

@ jdavies ..它工作+1 – Ananth