【问题标题】:JQuery AJAX post to asp.net webmethod never getting calledJQuery AJAX 发布到 asp.net webmethod 永远不会被调用
【发布时间】:2011-04-01 14:12:48
【问题描述】:

我的一个 aspx 页面中有一个 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 页面。刚刚想到的一件事,说这个jquery其实在register_borrower_step4.aspx页面上,会不会有问题?

【问题讨论】:

    标签: jquery webmethod ajax.net


    【解决方案1】:

    该方法不需要数组。试试这样:

    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 参数的区域性,还要确保浮点分隔符是正确的。区分.,,否则网络方法可能不起作用。要进一步分析任何问题,您可以使用FireBug 来查看幕后究竟发生了什么。

    【讨论】:

    • @Darin Dimitrov 我们可以将多个文件从 ajax 调用发布到 Web 方法吗?这可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多