1

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";
    }

エラー ボックスに表示されるオブジェクトは、それぞれ未定義および null です。さらに、関数内にブレークポイントがある場合、関数は決してステップインされないと結論付けられています。私は何を間違っていますか?

4

1 に答える 1

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;" />

それはうまくいくはずです

于 2013-06-02T02:43:40.657 に答える