Abrar Kazi Ответов: 1

Как передать данные в jquery datatable с помощью ajax вызова метода действия MVC, возвращающего список<employee>


public JsonResult GetData()
       {
           Employee emp = new Employee();
           List<Employee> emplist = new List<Employee>();
           emp.name = "Durgesh Mapuskar";
           emp.salary = "500000";
           emp.position = "Team Lead";
           emp.start_date = "01/01/2016";
           emp.office = "BUPA";
           emp.extn = 4156;
           emplist.Add(emp);
      var json = JsonConvert.SerializeObject(emplist);
       return Json(json.ToArray(), JsonRequestBehavior.AllowGet);
     }


$(document).ready(function () {
        debugger;
        var urllink = "/Home/GetData";
        var table = $('#example').DataTable({            
            ajax: {
                url: urllink,
                
            },
            "columns": [
                {
                    "className": 'details-control',
                    "orderable": false,
                    "data": null,
                    "defaultContent": ''
                },
                { "data": "name" },
                { "data": "position" },
                { "data": "office" },
                { "data": "salary" }
            ],
            "order": [[1, 'asc']]
        });


Что я уже пробовал:

это дает мне свойство длины не определено

1 Ответов

Рейтинг:
6

Richard Deeming

То Json вспомогательный метод[^] ожидает объект, который вы хотите вернуть, а не уже сериализованную строку JSON.

Удалить вызов на JsonConvert.SerializeObject, и просто передайте в списке:

public JsonResult GetData()
{
    List<Employee> emplist = new List<Employee>();
    
    ...
    
    return Json(emplist, JsonRequestBehavior.AllowGet);
}


Abrar Kazi

Спасибо.