3

aspx ページの 1 つに Web メソッドがあります。

[WebMethod]
public static string AddDebt(int userId, int type, string description, float amount)

そしてaspxページにはJQueryがあります

$(".addDebt").click(function (e) {
            e.preventDefault();
            var userId = $("[id$='txtUserId']").val();
            var type = $("[id$='ddlExistingDebtType']").val();
            var description = $("[id$='txtExistingDebtLender']").val();
            var amount = $("[id$='txtExistingDebtAmount']").val();

            var results = new Array();
            results.push({ userId: userId });
            results.push({ type: type });
            results.push({ description: description });
            results.push({ amount: amount });
            var dataString = JSON.stringify(results);
            $.ajax(
            {
                type: "POST",
                url: "register_borrower_step4.aspx/AddDebt",
                data: dataString,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (result) {
                    $(".pDebtsTable").text(result);
                }
            });

        });

データパラメーターを設定した方法はばかげているように見えますが、以前はきれいだったので変更しますが、要点は、JSON は私には問題ないように見えるので、そうではありませんか?

実行すると、web メソッドへの投稿はありませんが、contentType と dataType を変更すると、aspx ページ全体が返されます。私が考えたことの1つは、このjqueryが実際にはregister_borrower_step4.aspxページにあるとしたら、問題が発生するでしょうか?

4

1 に答える 1

7

メソッドは配列を想定していません。このようにしてみてください:

var dataString = JSON.stringify({ 
    userId: userId, 
    type: type, 
    description: description, 
    amount: amount 
});

$.ajax({
    type: "POST",
    url: "register_borrower_step4.aspx/AddDebt",
    data: dataString,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        $(".pDebtsTable").text(result);
    }
});

また、パラメータのカルチャに従って、浮動小数点セパレータが正しいことを確認してamountください。または Web メソッドが機能しない可能性があることを区別してください.,問題をさらに分析するには、FireBugを使用して、内部で何が起こっているかを正確に確認できます。

于 2010-08-20T10:21:33.770 に答える