2017-09-16 57 views
-1

這裏是我的Ajax功能:阿賈克斯不能調用Web窗體在asp.net的WebMethod和C#

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]。文本框中的所有值都返回正確。我想在表格中插入這些值。

[WebMethod] 
     public static int createSalesInvoice(SalesInvoiceEntity SalesInvoice) 
     { 
      int i = SalesInvoiceManager1.createSalesInvoice(SalesInvoice); 
      return i; 
     } 
+0

您在createSalesInvoice()中添加了[WebMethod]屬性了嗎? –

+0

@HamedJavaheri yes .. plz查看編輯問題我的webmethod –

+0

你檢查了你的數據屬性是否正確? – Komal

回答

0

需要檢查在數據

SalesInvoice.FinalAmount = $("#txtGrandTotal").val(); 
SalesInvoice.PaidAmount = $("#txtTotalPaid").val(); 
SalesInvoice.RemainingAmount = $("#txtTotalRemAmt").val(); 

傳遞如果上述參數是在整數作爲在的webmethod參數的參數 - (SalesInvoiceEntity SalesInvoice)然後應

SalesInvoice.FinalAmount = parseInt($("#txtGrandTotal").val()); 

被轉換爲INT並且值也不能爲空而是0.

希望它有效。

0
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

+0

我已經試過這Sanket ..不工作 –

+0

@DinkarVeer你可以設置默認的正確的價值SalesInvoiceJS對象,而不是文本框的值?和測試功能。 –

+0

您將不得不學習如何使用瀏覽器的工具進行調試。瞭解如何查找JavaScript錯誤並監控網絡流量。檢查你的函數實際上是否被調用等 – mason