Datatables Ajax Data: Send Json Array to ASP.NET Controller

1.5k Views Asked by At

I'm trying to send data in a json array to an ASP.NET Controller. I'm able to send the data to the controller perfectly using jQuery Ajax, but unable to do the same using Datatables.net Ajax.

Controller:

[HttpPost]
public JsonResult DataTablesHandler(DTParameters param, List<AdvancedSearch> advSearch)
{
    //code...
}

Datatables:

var dt = table.DataTable({
        columns: [],
        processing: true,
        serverSide: true,
        ajax: {
            type: 'POST',
            url: '/Controller/DataTablesHandler',
            data: function (d)
            {
                d.advSearch = advSearch;
            }
        }
    });

Json Array:

advSearch = [{"column":"id","value":"1"},{"column":"name","value":"Jon Snow"}];

The controllers advSearch list parameter is always empty. What am i doing wrong?

1

There are 1 best solutions below

0
On BEST ANSWER

Since i was unable to send a List object to my Controller, i ended up sending the data as a string and parsing the values in the Controller:

[HttpPost]
public JsonResult DataTablesHandler(DTParameters param, string advSearch)
{
     ///convert JSON string to List<AdvancedSearch>
     var advSearchParams = JsonConvert.DeserializeObject<List<AdvancedSearch>>(advSearch);

     //(...)
}