jquery数据表从webAPI接收incorect json

时间:2017-09-04 08:33:16

标签: javascript jquery json ajax asp.net-web-api

我无法从ajax命令填充jQuery Datatble。

这是webAPI代码(UtentiController):

' GET: api/Utenti
    <HttpGet>
    Public Function GetUtentis() As IEnumerable(Of Utenti)
         Using WFe As WorkForceEntities = New WorkForceEntities
            Return WFe.Utentis.ToList
         End Using
    End Function

这是客户端代码:

    <script>
    $(document).ready(function () {
        var oTable = $('#myDatatable').DataTable({
            paging: true,
            sort: true,
            searching: true,
            "ajax": {
                "url": '/api/utenti/',
                "type": "get",
                "datatype": "json",
                error: function (xhr, status, error) {
                    alert(xhr.responseText);
                }
            },
            "columns": [
                { "data": "Nome", "autoWidth": true },
                { "data": "Cognome", "autoWidth": true },
                { "data": "Username", "autoWidth": true },
                { "data": "GruppoDiLavoro", "autoWidth": true },
                { "data": "ProfiloFunzionalità", "autoWidth": true },
              ]
        })


    })
</script>

我认为问题出在json字符串上。 ajax命令返回错误的json,缺少初始子字符串 {“data”:

  

[       {         “IDutente”:2,         “Operatore”:“管理员”,         “密码”:“1234”,         “LivelloDiAccesso”:1,         “诺姆”:“管理员”,         “Cognome”:“管理员”,         “用户名”:“管理员”,         “GruppoDiLavoro”:“管理员”,         “ProfiloFunzionalità”:“管理员”,         “Attivo”:是的,         “DataCreazione”:“2017-08-30T00:00:00”,         “DataScadenza”:“2025-12-31T00:00:00”,         “邮件”:“没什么”       },       {         “IDutente”:3,         “Operatore”:“MS”,         “密码”:“1234”,         “LivelloDiAccesso”:2,         “诺姆”:“管理员”,         “Cognome”:“S”,         “用户名”:“M”,         “GruppoDiLavoro”:“管理员”,         “ProfiloFunzionalità”:“管理员”,         “Attivo”:是的,         “DataCreazione”:“2017-08-30T00:00:00”,         “DataScadenza”:“2025-12-31T00:00:00”,         “邮件”:“没什么”       }     ]

如果我加载这样的json文件(“ajax”:“../ UtentiData.json”,

  

{     “数据”:[       {         “IDutente”:2,         “Operatore”:“管理员”,         “密码”:“1234”,         “LivelloDiAccesso”:1,         “诺姆”:“管理员”,         “Cognome”:“管理员”,         “用户名”:“管理员”,         “GruppoDiLavoro”:“管理员”,         “ProfiloFunzionalità”:“管理员”,         “Attivo”:是的,         “DataCreazione”:“2017-08-30T00:00:00”,         “DataScadenza”:“2025-12-31T00:00:00”,         “邮件”:“没什么”       },       {         “IDutente”:3,         “Operatore”:“MS”,         “密码”:“1234”,         “LivelloDiAccesso”:2,         “诺姆”:“管理员”,         “Cognome”:“S”,         “用户名”:“M”,         “GruppoDiLavoro”:“管理员”,         “ProfiloFunzionalità”:“管理员”,         “Attivo”:是的,         “DataCreazione”:“2017-08-30T00:00:00”,         “DataScadenza”:“2025-12-31T00:00:00”,         “邮件”:“没什么”       }     ]   }

代码运行良好,jQuery Datatable正确填充。

如何才能与Json webAPI一起正常工作? 感谢

1 个答案:

答案 0 :(得分:1)

您可以使用“平面阵列数据源”。

将您的代码更改为:

<script>
$(document).ready(function () {
    var oTable = $('#myDatatable').DataTable({
        paging: true,
        sort: true,
        searching: true,
        "ajax": {
            "url": '/api/utenti/',
            "type": "get",
            "dataSrc": "",
            error: function (xhr, status, error) {
                alert(xhr.responseText);
            }
        },
        "columns": [
            { "data": "Nome", "autoWidth": true },
            { "data": "Cognome", "autoWidth": true },
            { "data": "Username", "autoWidth": true },
            { "data": "GruppoDiLavoro", "autoWidth": true },
            { "data": "ProfiloFunzionalità", "autoWidth": true },
          ]
    })


})

请参阅example