Загрузить ASP.Net MVC JSONResult jQuery DataTables

Я пытаюсь заставить DataTables (http://datatables.net) работать с JsonResult, возвращаемым ASP .Net MVC Controller. Я продолжаю получать предупреждение «DataTables (table id = 'example'): запрошенный неизвестный параметр« 0 »из источника данных для строки 0», что, согласно документам, означает, что он не может найти столбцы.

Код в контроллере, который возвращает JsonResult, выглядит так:

    public JsonResult LoadPhoneNumbers()
    {
        List<PhoneNumber> phoneNumbers = new List<PhoneNumber>();
        PhoneNumber num1 = new PhoneNumber { Number = "555 123 4567", Description = "George" };
        PhoneNumber num2 = new PhoneNumber { Number = "555 765 4321", Description = "Kevin" };
        PhoneNumber num3 = new PhoneNumber { Number = "555 555 4781", Description = "Sam" };

        phoneNumbers.Add(num1);
        phoneNumbers.Add(num2);
        phoneNumbers.Add(num3);

        return Json(phoneNumbers, JsonRequestBehavior.AllowGet);
    }

PhoneNumber - это простой класс C # с двумя свойствами, Number и Description.

JavaScript, который извлекает и загружает данные, выглядит так:

<script>
$(document).ready(function () {
    $('#example').dataTable({
        "bProcessing": true,
        "sAjaxSource": '/Account/LoadPhoneNumbers/',
        "sAjaxDataProp": ""
    });
});
</script>

И HTML выглядит так:

<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
    <tr>
        <th>
            Number
        </th>
        <th>
            Description
        </th>
    </tr>
</thead>
<tbody>
</tbody>
<tfoot>
</tfoot>
</table>

Я намеренно установил для sAjaxDataProp пустую строку, чтобы DataTables не искал aaData. Даже когда я явно установил aaData в контроллере:

return Json(new { aaData = phoneNumbers });

Я все равно получаю сообщение об ошибке. Любой совет, пожалуйста?

Спасибо!

11
задан Prasanth 20 October 2011 в 14:24
поделиться