I figured it out. First, JSON is not in the correct format - you don't just return data, you need to return some other stuff, too:
{"sEcho":1,"iTotalRecords":4,"iTotalDisplayRecords":4,"sColumns":["Advisor","Campus","Completed","Name","Paid","Started","StepsCompleted","Options"],"aaData":[{"Name":"name1","Campus":"campus1","Advisor":"advisor1","StepsCompleted":1,"Paid":true,"Started":"2013-06-15T20:24:07.3187581-04:00","Completed":"2013-06-15T20:24:07.3187581-04:00","Options":""},{"Name":"name2","Campus":"campus2","Advisor":"advisor2","StepsCompleted":2,"Paid":true,"Started":"2013-06-15T20:24:07.3187581-04:00","Completed":"2013-06-15T20:24:07.3187581-04:00","Options":""},{"Name":"name3","Campus":"campus3","Advisor":"advisor3","StepsCompleted":3,"Paid":true,"Started":"2013-06-15T20:24:07.3187581-04:00","Completed":"2013-06-15T20:24:07.3187581-04:00","Options":""},{"Name":"name4","Campus":"campus4","Advisor":"advisor4","StepsCompleted":4,"Paid":true,"Started":"2013-06-15T20:24:07.3187581-04:00","Completed":"2013-06-15T20:24:07.3187581-04:00","Options":""}]}
And then, you also need to define columns in your JS:
$(document).ready(
function()
{
$('#dt-enrollments').dataTable(
{
'sPaginationType': 'full_numbers',
'bProcessing': true,
'sAjaxSource': '/admin/api/enrollments',
'sAjaxDataProp': 'aaData',
'aoColumns': [
{ 'mDataProp': 'Name' },
...
{ 'mDataProp': 'Options' }
],
'oLanguage' :
{
'sProcessing': 'Loading enrollments, please wait...'
}
});
});
If you are doing it in with .NET and in C#, you would have a corresponding class like this:
public class Enrollment
{
public string Name { get; set; }
...
public string Options { get; set; }
}
And your JSON output method would be something like this:
[WebInvoke(ResponseFormat = WebMessageFormat.Json, Method = "GET")]
public object GetEnrollments()
{
return new
{
sEcho = 1,
iTotalRecords = 4,
iTotalDisplayRecords = 4,
sColumns = new List<string> { "Advisor", ..., "Options" },
aaData = new List<enrollment>
{
new Enrollment { Advisor = "advisor1", ..., Options = "" },
new Enrollment { Advisor = "advisor2", ..., Options = "" },
new Enrollment { Advisor = "advisor3", ..., Options = "" },
new Enrollment { Advisor = "advisor4", ..., Options = "" }
}
};
}
I hope this helps someone who's new to DataTables.net :)