2017-11-15 10 views
0

私は1つのことにこだわりました。チェックボックスの中に2つのグリッドがあります。私がそのチェックボックスを選択すると、アレイやリストのような行データ値をPOSTしたいと思う。実際に私は1つのリストアイテムを送信するときにエラーなしで投稿していますが、複数のアイテムを取得したときに値を投稿できませんでした。AJAXで複数の値をPOSTすることはできません

私のグリッドの例 Example of my grid

ここに私のAjaxのリクエストとどのように行の値を選択するためには、私はちょうど1を送信するときにこれは私のC#の一部

[HttpPost] 
    public string CreateInvoice(List<Pm_I_GecisTo_Result> items, List<Pm_I_GecisFrom_Result> items1, string refnum) 
    { 
     try 
     { 
      if (items != null && items1 != null) 
      { 
       //do Something 
      } 
      else 
      { 
       Log.append("Items not selected", 50); 
       return "-1"; 
      } 


     } 
     catch (Exception ex) 
     { 
      Log.append("Exception in Create Invoice action of HeadOfficeController " + ex.ToString(), 50); 
      return "-1"; 
     } 
    } 

である。しかし

var grid = $("#InvoceGrid").data('kendoGrid'); 
var sel = $("input:checked", grid.tbody).closest("tr"); 
var items = []; 
$.each(sel, function (idx, row) { 
    var item = grid.dataItem(row); 
    items.push(item); 
}); 

var grid1 = $("#DeliveryGrid").data('kendoGrid'); 
var sel1 = $("input:checked", grid1.tbody).closest("tr"); 
var items1 = []; 
$.each(sel1, function (idx, row) { 
    var item1 = grid1.dataItem(row); 
    items1.push(item1); 
}); 

$.ajax({ 
    url: '../HeadOffice/CreateInvoice', 
    type: 'POST', 
    data: JSON.stringify({ 'items': items, 'items1': items1, 'refnum': refnum }), 
    contentType: 'application/json', 
    traditional: true, 
    success: function (msg) { 
     if (msg == "0") { 
      $("#lblMessageInvoice").text("Invoices have been created.") 
      var del = $("#InvoiceOKWindow").data("kendoWindow"); 
      del.center().open(); 
      var del1 = $("#InvoiceDetail").data("kendoWindow"); 
      del1.center().close(); 
      $("#grdDlvInv").data('kendoGrid').dataSource.read(); 
     } 
     else { 
      $("#lblMessageInvoice").text("Problem occured. Please try again later.") 
      var del = $("#InvoiceOKWindow").data("kendoWindow"); 
      del.center().open(); 
      return false; 
     } 
    } 
}); 

機能それは動作しますが、複数の値を送信しようとするとnullが発行され、問題が発生します

どうすればこの問題を解決できますか?あなたは何か考えていますか?

EDIT

は、私が言うことを忘れていましたが、この方法はとlocalYに取り組んでいるが、私は更新するときに、サーバーが適切に動作していません。

+0

tradional削除してみてください:真 –

+0

このWebAPIのですか? WebAPIの場合、 'CreateInvoice'に複数のパラメータバインディングを1つだけ持つことはできません。' [FromBody] '属性を使用してください。見てみましょう:https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api – 12seconds

+0

@ 12secondsこれはありませんこれはMVAP Webアプリケーションではありません。 – saulyasar

答えて

0
 $.ajax({ 
       url: '../HeadOffice/CreateInvoice', 
       type: 'POST', 
       async: false, 
       data: { items: items, items1: items1 } 

       success: function (msg) { 
        //add codes 
       }, 
       error: function() { 
        location.reload(); 
       } 

      }); 

試し、この方法により、コントローラを呼び出す:)

+0

文字列@MAC – saulyasar

関連する問題