3

apx.csファイルのC#で次の関数を作成しました

[WebMethod]
public static string  SendForm()
{
    string message = "hello world";
    return message;
}

そして、関数がaspxファイルのスクリプトによって呼び出されたときに、メッセージ( "hello world")を表示しようとしています。

<script>
    function SendForm() {
        var msg;
        msg = PageMethods.SendForm(OnSucceeded, OnFailed);

        function OnSucceeded() {
            alert(msg);
        }

        function OnFailed(error) {
            // Alert user to the error.
            alert("failed");
        }
    }
</script>
    <body>
    <form id="Form1" runat="server">
   <asp:ScriptManager ID="ScriptManager" runat="server"
       EnablePageMethods="true" />
   <fieldset id="ContactFieldset">
        <input type="button" onclick="return SendForm()" value="send" />
   </fieldset>
</form>
</body>

送信ボタンをクリックすると、「未定義」というメッセージが表示されたアラートが表示されるため、変数「msg」は未定義ですが、C#関数の「helloworld」をmsg変数に入れるにはどうすればよいですか?

ありがとう

4

4 に答える 4

0

それはあなたがメッセージを受け取る方法ではありません。

このようにしてください

   function SendForm() {
        PageMethods.SendForm(OnSucceeded, OnFailed);

        function OnSucceeded(msg) {
            alert(msg);
        }

        function OnFailed(error) {
            // Alert user to the error.
            alert("failed");
        }
    }

成功関数は、関数呼び出しの結果をパラメーターとして受け取ります。

于 2013-03-13T11:59:28.443 に答える
0

使用している .Net フレームワークのバージョンはわかりませんが、3.5 の場合は、次のリンクを確認してください。

http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/

asp.net 3.5 以降では、応答は .d でラップされます。

于 2013-03-13T12:07:12.980 に答える
0
    function SendForm() {
        var msg;
        msg = PageMethods.SendForm(function (result) {
            alert(result);
        }, function (error) {
            alert(error);
        });
    }

これはうまくいくはずです。

SendForm メソッドから例外をスローすると、自動的にエラー メソッドに移動します。

[WebMethod]
public static string  SendForm()
{
    throw new Exception("Error");

    string message = "hello world";
    return message;
}
于 2013-03-13T11:56:39.883 に答える
0

使ってみて

 function OnSucceeded() {
        alert(msg.d);
    }

編集 -1

親切にこのリンクにアクセスしてください
ScriptManagerを使用して特定のクラスメソッドを呼び出すにはどうすればよいですか

于 2013-03-13T11:51:09.107 に答える