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

我的一个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查看封面下发生的具体情况。

Interesting Posts