JQuery AJAX 发布到 asp.net webmethod 永远不会被调用

标签 jquery webmethod ajax.net

我的一个 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页面上,这会导致问题吗?

最佳答案

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

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准确了解幕后发生的事情。

关于JQuery AJAX 发布到 asp.net webmethod 永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3529953/

相关文章:

jquery - 当 slideDown()/slideUp() 发生时,你能拉伸(stretch)背景高度吗

asp.net - 在ASP.NET中使用Web API而不是Web方法的优点是什么

c# - 从 VS 2008 将 .net Framework 2.0 更新到 .net Framework 3.5 时出现 ajax 问题

asp.net - 为什么 WebMethod 声明为静态?

javascript - 如何通过javascript从ajax.net ComboBox获取选定的值

c# - 使用 ScriptManager.RegisterStartupScript 注册的启动脚本未呈现到页面

MVC3 应用程序内的 Jquery UI 自动完成

javascript - 将区域元素转换为 div

javascript - 关闭 colorbox 并将父窗口重定向到特定的 url

jquery - Kendo UI 网格 WebMethod JSON