Плагин DataTables не вызывается для отображения данных Json - PullRequest
0 голосов
/ 12 мая 2018

Я новичок в MVC и JQuery, поэтому я ценю всю помощь, которую могу получить.

Я пытаюсь просматривать данные, извлеченные из базы данных SQL, в представлении MVC с помощью плагина JQuery DataTables.Вот мое действие контроллера:

public JsonResult Index()
    {
        var subjects = _db.Subjects.Select(x => new SubjectViewModel()
        {
            SubjectName = x.SubjectName
        }).ToList();

        return Json(subjects, JsonRequestBehavior.AllowGet);
    }

И вот мое представление:

@model IEnumerable.....
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div>
    <table id="mytable" class="display">
        <thead> <tr>
                <th> Subject Name </th>
        </tr> </thead>
     <tbody> </tbody>
</table>
</div>

<script>
    $(document).ready(function () {
        $.noConflict();
        $.ajax({
            url: '@Url.Action("Index", "SubjectViewModel")',
            type: 'Get',
            dataType: 'JSON',
            success: function (response) {
                $('#mytable').DataTable({
                    'aaData': response,
                    'aoColumns': [
                        { 'mData': 'SubjectName ' }
                    ]
                });
            }
        });
    });
</script>

Я разместил все ссылки на JavaScript на странице макета, но даже если я их на этом представленииэто не имеет значения.В результате я получаю необработанные данные json, которые выглядят следующим образом:

{"SubjectName":"Mathematics"},{"SubjectName":"Accounting"},{"SubjectName":"Science"}

Пожалуйста, помогите мне понять, что мне не хватает, чтобы в dataTable отображались данные Json.Спасибо.

1 Ответ

0 голосов
/ 12 мая 2018

Вы уже передали данные как модель для просмотра бритвой, как @Stephen Muecke сказал использовать цикл, как показано ниже:

@model IEnumerable.....
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div>
    <table id="mytable" class="display">
        <thead> <tr>
                <th> Subject Name </th>
        </tr> </thead>
        <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>item</td>
            </tr>
        }
        </tbody>
    </table>
</div>
...