datatable js ajax将变量传递给C#serverside方法

时间:2014-08-12 18:38:53

标签: c# .net datatable

我有一个通过服务器端ajax填充的数据表。我需要将变量传递给服务器端C#方法。变量没有到达服务器端。

我尝试过几种不同的方法。这应该很容易。

 var tblApplication = $('#tblApplication').DataTable({
    "ajax": {
        "url": '../../Search/ApplicationList',
        "type": 'POST',
        "data":{
            yearh: 2014,
            make: ''
        }
    },        
    "autoWidth": false,
    "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
        $(nRow).addClass("parent");
        return nRow;
    },
    "order": [[1, "desc"]],
    "deferRender": true,
    "columns": [
        {
            "title": '',
            "class": 'details-control',
            "orderable": false,
            "data": null,
            "defaultContent": '<img src="../../assets/images/details_open.png" />'
        },
        { "title": 'ApplicationId', "data": 'ApplicationId', "visible": false },
        { "title": 'Year', "data": 'Year' },
        { "title": 'Make', "data": 'Make' },
        { "title": 'Model', "data": 'Model' },
        { "title": 'Qualifier', "data": 'Qualifier' },
        { "title": 'Axle', "data": 'Axle' },
        { "title": 'Pad Set', "data": 'PadSet' },
        { "title": 'Side', "data": 'Side' },
        { "title": 'Part List', "data": 'PartListId' }
    ]
});

[HttpPost]
public JsonResult ApplicationList(int year = 0, string make = null )
{
}

1 个答案:

答案 0 :(得分:0)

根据datatables.js参考,您需要扩展"data"之类的内容以使其正常工作;

$('#example').dataTable( {
  "ajax": {
    "url": "data.json",
    "data": function ( d ) {
      return $.extend( {}, d, {
        "extra_search": $('#extra').val(),
        "year": 2014,
        "make": 'Nissan'
      } );
    }
  }
} );

有关进一步的文档,请参阅this。希望这会有所帮助。