PageMethod无法调用C#函数

时间:2013-05-29 22:46:14

标签: c# javascript asp.net pagemethods

在尝试学习PageMethods时,我遇到了一个特殊的问题。

运行程序时,程序进入错误功能。 Chrome开发者工具显示以下错误:

    GET http://localhost:62316/Advertising/WebForm1.aspx/GetCurrentDate  ScriptResource.axd:4844

这是我的asp代码:

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

        function call() {
            PageMethods.GetCurrentDate(success, fail);
            return false;
        }


        function success(msg) {
            alert("Success "+msg);
        }

        function fail(xhr, status) {
            alert("Fail "+xhr.responseText+" "+status);
        }
    </script> 
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="Manager" runat="server" EnablePageMethods="true"></asp:ScriptManager>
        <asp:Button ID="test" Text="Get Text" runat="server" OnClientClick="javascript: return call();" />

    </form>
</body>
</html>

这是C#代码:

     [WebMethod]
    [ScriptMethod(UseHttpGet = true)]
    public static string GetCurrentDate()
    {

        return "foo";
    }

错误框中显示的对象分别是undefined和null。此外,通过函数中的断点,可以得出结论,函数永远不会进入。我做错了什么?

1 个答案:

答案 0 :(得分:1)

更改以下行

<asp:Button ID="test" Text="Get Text" runat="server" OnClientClick="javascript: return call();" />

作为

<asp:Button ID="test" Text="Get Text" runat="server" OnClientClick="call(); return false;" />

应该有效