Ajax 无法在 asp.net 和 C# 中调用 webform 的 webmethod
Ajax cannot call webform's webmethod in asp.net and C#
这是我的 Ajax 函数:
function createSalesInvoice() {
var SalesInvoice = {};
SalesInvoice.PaidAmount = $("#textbox1").val();
SalesInvoice.RemainingAmount = $("#textbox2").val();
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/AjaxRequestToServer.aspx/createSalesInvoice", //URI
data: '{SalesInvoice: ' + JSON.stringify(SalesInvoice) + '}',
dataType: "json",
success: function (data) {
bootbox.alert("Item Added Successfully", function (e) { });
GetSalesInvoiceItemsList();
$("#hdfFlag").val("false");
},
error: function (xhr) {
}
});
}
我无法打电话给 [webmethod]
。文本框 returns 中的所有值均正确。我想在 table.
中插入这些值
[WebMethod]
public static int createSalesInvoice(SalesInvoiceEntity SalesInvoice)
{
int i = SalesInvoiceManager1.createSalesInvoice(SalesInvoice);
return i;
}
data: '{SalesInvoice: ' + JSON.stringify(SalesInvoice) + '}',
这应该是
data: JSON.stringify({'SalesInvoice':SalesInvoice }),
您的 Javascript 函数应该如下所示,只更改了一行。
并且将 javscript 对象名称更改为 "SalesInvoiceJS" 以便于区分。
function createSalesInvoice() {
var SalesInvoiceJS = {};
SalesInvoiceJS.FinalAmount = $("#txtGrandTotal").val();
SalesInvoiceJS.PaidAmount = $("#txtTotalPaid").val();
SalesInvoiceJS.RemainingAmount = $("#txtTotalRemAmt").val();
// alert(SalesInvoiceJS.TotalInvoiceValue); ----------------This alert is working fine and return all above values correct.
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/AjaxRequestToServer.aspx/createSalesInvoice", //URI
data: JSON.stringify({'SalesInvoice':SalesInvoiceJS }),
dataType: "json",
success: function (data) {
bootbox.alert("Item Added Successfully", function (e) { });
GetSalesInvoiceItemsList();
$("#hdfFlag").val("false");
},
error: function (xhr) {
}
});
}
参考:From this place。
需要检查传入的参数data
SalesInvoice.FinalAmount = $("#txtGrandTotal").val();
SalesInvoice.PaidAmount = $("#txtTotalPaid").val();
SalesInvoice.RemainingAmount = $("#txtTotalRemAmt").val();
如果以上参数是整数,如在 webmethod 参数中 - (SalesInvoiceEntity SalesInvoice),则应通过
转换为 int
SalesInvoice.FinalAmount = parseInt($("#txtGrandTotal").val());
并且值不能为空,而是 0。
希望有用。
这是我的 Ajax 函数:
function createSalesInvoice() {
var SalesInvoice = {};
SalesInvoice.PaidAmount = $("#textbox1").val();
SalesInvoice.RemainingAmount = $("#textbox2").val();
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/AjaxRequestToServer.aspx/createSalesInvoice", //URI
data: '{SalesInvoice: ' + JSON.stringify(SalesInvoice) + '}',
dataType: "json",
success: function (data) {
bootbox.alert("Item Added Successfully", function (e) { });
GetSalesInvoiceItemsList();
$("#hdfFlag").val("false");
},
error: function (xhr) {
}
});
}
我无法打电话给 [webmethod]
。文本框 returns 中的所有值均正确。我想在 table.
[WebMethod]
public static int createSalesInvoice(SalesInvoiceEntity SalesInvoice)
{
int i = SalesInvoiceManager1.createSalesInvoice(SalesInvoice);
return i;
}
data: '{SalesInvoice: ' + JSON.stringify(SalesInvoice) + '}',
这应该是
data: JSON.stringify({'SalesInvoice':SalesInvoice }),
您的 Javascript 函数应该如下所示,只更改了一行。 并且将 javscript 对象名称更改为 "SalesInvoiceJS" 以便于区分。
function createSalesInvoice() {
var SalesInvoiceJS = {};
SalesInvoiceJS.FinalAmount = $("#txtGrandTotal").val();
SalesInvoiceJS.PaidAmount = $("#txtTotalPaid").val();
SalesInvoiceJS.RemainingAmount = $("#txtTotalRemAmt").val();
// alert(SalesInvoiceJS.TotalInvoiceValue); ----------------This alert is working fine and return all above values correct.
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/AjaxRequestToServer.aspx/createSalesInvoice", //URI
data: JSON.stringify({'SalesInvoice':SalesInvoiceJS }),
dataType: "json",
success: function (data) {
bootbox.alert("Item Added Successfully", function (e) { });
GetSalesInvoiceItemsList();
$("#hdfFlag").val("false");
},
error: function (xhr) {
}
});
}
参考:From this place。
需要检查传入的参数data
SalesInvoice.FinalAmount = $("#txtGrandTotal").val();
SalesInvoice.PaidAmount = $("#txtTotalPaid").val();
SalesInvoice.RemainingAmount = $("#txtTotalRemAmt").val();
如果以上参数是整数,如在 webmethod 参数中 - (SalesInvoiceEntity SalesInvoice),则应通过
转换为 intSalesInvoice.FinalAmount = parseInt($("#txtGrandTotal").val());
并且值不能为空,而是 0。
希望有用。