2017-09-04 67 views
2

我无法从ajax命令填充jQuery Datatable。jquery datatable从webAPI接收incorect json

这是的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,缺少起始子串{ “数据”:

[ { “IDutente”:2, “算符”: “系统管理员”, “密码”:“1234 ”, “LivelloDiAccesso”:1, “诺姆”: “系统管理员”, “Cognome”: “系统管理员”, “用户名”: “系统管理员”, “GruppoDiLavoro”: “系统管理员”, “ProfiloFunzionalità”: “Admin”, “Attivo”:true, “DataCreazione”:“2017-08-30T00:00:00”, “DataScadenza”: “2025-12-31T00:00:00”, “邮件”: “无” },{ “IDutente”:3, “算符”: “MS”, “密码” : “1234”, “LivelloDiAccesso”:2, “诺姆”: “系统管理员”, “Cognome”: “S”, “用户名”: “M”, “GruppoDiLavoro”: “系统管理员”, “ ProfiloFunzionalità“:”Admin“, ”Attivo“:true, ”DataCreazione“:”2017-08-30T00:00:00“, ”DataScadenza“:”2025-12-31T00:00:00“, ” Mail“:”nothing“ } ]

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

{ ” 数据 “:[{ ” 参数userid “:2 ” 操作员 “:” 系统管理员 “ " 密码”, “1234”, " LivelloDiAccesso“ 1, “名称”: “管理”, “姓”: “管理”, “用户名”: “管理”, “GruppoDiLavoro”: “管理”, “ProfiloFunzionalità”: “管理”, “活动“:真实, ” dateCreated会 “:” 2017-08-30T00:00:00 “ " DataScadenza ”:“ 2025-12-31T00:00:00”, “邮报”: “无” },{ “用户id”:3, “运营商”, “MS”, “密码”, “1234”, “LivelloDiAccesso”:2 “名称”: “管理”, “姓”, “S”, “用户名”, “M”, “GruppoDiLavoro”: “系统管理员”, “ProfiloFunzionalità”: “系统管理员”, “活动”:真实, “dateCreated会“:” 2017-08-30T00:00:00 “ " DataScadenza ”:“ 2025-12-31T00:00:00”, " 邮报 “:” 无“ }]}

代码工作良好,jQuery是DataTable中填入正确。

我可以做什么用的JSON的WebAPI结束工作? 感谢

回答

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

+0

好!工作秩序。谢谢。 – Marco

+0

现在我有一个问题。如果我使用像“/ API /用户/ 1”的URL,该报告的数据表“表中没有可用的数据” !!问题出在哪里? – Marco

+0

你在Web浏览器中打开URL,并检查是否有可用的数据? – kangaro0