ОБНОВЛЕНИЕ
Я нашел лучший способ использовать AJAX для ваших исходных данных из контроллера.Пожалуйста, используйте этот метод для вашей таблицы DataTable с AJAX:
Чтобы показать ваши данные через AJAX в вашем плагине DataTable, внесите следующие изменения в ваш код:
Добавьте модель с именем DataTable
public class DataTable
{
public List<vt> data { get; set; }
}
Затем в вашем контроллере:
public JsonResult GetVoters()
{
DataTable dataTable = new DataTable();
List<vt> stud = (from student in _context.Voters
select new vt
{
StudentNumber = student.StudentNumber,
Name = student.Name,
Faculty = student.Faculty,
Department = student.Department,
Program = student.Program,
Code = student.Code
}).Take(100).ToList();
//The magic happens here
dataTable.data = stud;
return Json(dataTable, JsonRequestBehavior.AllowGet);
}
И, наконец, в вашем представлении, используйте этот скрипт для заполнения таблицы данных:
<script type="text/javascript">
$(document).ready(function () {
//For filtering:
$('#codetable thead tr').clone(true).appendTo('#codetable thead');
$('#codetable thead tr:eq(1) th').each(function (i) {
var title = $(this).text();
$(this).html('<input type="text" placeholder="Search ' + title + '" />');
$('input', this).on('keyup change', function () {
if (table.column(i).search() !== this.value) {
table
.column(i)
.search(this.value)
.draw();
}
});
});
var table=$('#codetable').DataTable({
"ajax": '@Url.Action("GetVoters", "Index")',
"columns": [
{ "data": "StudentNumber" },
{ "data": "Name" },
{ "data": "Faculty" },
{ "data": "Department" },
{ "data": "Program" },
{ "data": "Code" }
]
});
});
</script>
И я почтизабыл, измените структуру своей HTML-таблицы также для целей фильтрации:
<table class="table table-striped" id="codetable">
<thead>
<tr>
<th>Student Number</th>
<th>Student</th>
<th>Faculty</th>
<th>Department</th>
<th>Program</th>
<th>Code</th>
</tr>
</thead>
<tbody></tbody>
</table>
Я использовал DataTables с AJAX-объектами в качестве источника данных для вашей сетки.
Cheers.