簡體   English   中英

在asp.net WebApi中將表數據序列化為IEnumerable

[英]Serialize table data as IEnumerable within asp.net WebApi

我有一個Web API應用程序,其中有此代碼

  public class FiltredDriverAgendaModel
    {
        public int Id_driver_agenda { get; set; }
        public string name_driver_agenda { get; set; }
        public bool isDriveChecked { get; set; }
    }

HTML部分

<table id="tbldriver" class="table table-bordered table-striped">
                                            <thead>
                                                <tr style="color:white;background-color:#3c8dbc">
                                                    <th>Id chauffeur</th>
                                                    <th>Chauffeur</th>
                                                    <th> </th>

                                                </tr>
                                            </thead>
                                            <tbody id="tbldriverBody"></tbody>
                                        </table>

我將表格填入javascript部分,如下所示:

 function GetFiltredDrivers() {
        $.ajax({
            type: "Get",
            url: "/api/AccountManage/GetAllChauffeurs",
            success: function (data) {
                EmptyGridFilter();
                for (var i = 0; i < data.length; i++) {
                    var chauffeur = data[i];   
                    $('#tbldriverBody').append('<tr><td><input type="text" readonly name="Id_driver_agenda" value="'+ chauffeur.id+'" />  </td>'
                   + '<td><input type="text"  name="name_driver_agenda" readonly value="' + chauffeur.Nom + " " + chauffeur.Prenom + '" /></td>'
                   + '<td><input type="checkbox"  name="isDriveChecked" checked /> </td></tr>');
                }
                initGridDriver();

                } 
        });
    }
function initGridDriver() {
    var table = $('#tbldriver').dataTable({
        "processing": true,
        "bPaginate": true,
        "bLengthChange": false,
        "bFilter": true,
        "bSort": false,
        "bInfo": true,
        "responsive": true,
        "scrollX": true,
        "scrollY": "200px",
        "scrollCollapse": true,
        "bAutoWidth": false,
        "language": { "url": "//cdn.datatables.net/plug-ins/1.10.7/i18n/French.json" },
        "lengthMenu": [[50, 100, 250, 500, -1], [50, 250, 500, "Tout"]],
        "destroy": true,
        "columnDefs": [
   { "width": "20%", "targets": 0 },
    { "width": "50%", "targets": 1 },
     { "width": "30%", "targets": 2 } 

        ],
        "bAutoWidth": false
    });

    $("#tbldriver tr").css('cursor', 'pointer');

    $('#tbldriverBody').on('click', 'tr', function () {

        if ($(this).hasClass('selected')) {
            $(this).removeClass('selected'); 
        }
        else {

            table.$('tr.selected').removeClass();
            $(this).addClass('selected'); 

        }

    });

}

我打了這個Ajax電話:

 $.ajax({
        type: "post",
        async: false,
        url: "/api/Demande/ReservationAgendaByDrivers",
        data: $("#tbldriver input").serialize(),
        success: function (data) {
      .............
       }

問題是當我這樣創建服務ReservationAgendaByDrivers

[HttpPost]
        public IEnumerable<ReservationModel> ReservationAgendaByDrivers(List<FiltredDriverAgendaModel> obj) {}

我遇到了這個問題: obj始終將null作為值。

所以我需要知道:

  1. 我必須選擇什么類型的控制器參數?
  2. 為什么值是null?
  3. 如何修復我的代碼?

謝謝,

您需要正確命名輸入。

我已經嘗試了以下方法,並且對我有用:只需像這樣在obj [index] .property中替換輸入的'name'屬性:

<tr><td><input type="text" readonly name="obj['+i+'].id" value="'+ chauffeur.id+'" />  </td>'
               + '<td><input type="text"  name="obj['+i+'].Nom" ...

(假設.id和.Nom是模型中的屬性)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM