无法从Javascript访问web方法

时间:2011-08-03 19:16:20

标签: c# javascript .net asp.net ajax

我正在创建一个简单的Web方法来从Java脚本访问..但我无法

<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遗失了什么?有什么帮助吗?在此先感谢

1 个答案:

答案 0 :(得分:3)

您需要定义一个回调函数,该函数在收到来自Web方法的响应时调用:

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

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

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

您也可以将参数传递给方法,但这些参数必须始终在成功和失败回调之前。

注意:您不需要包含失败的回叫,但如果需要,则可以使用。