You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core C#使用jQuery Datatable时出现Unexpected token错误如何解决

错误原因

直接在JS代码中输出@ViewBag.UsersArray时,Razor引擎不会自动将C#数组转为JS可识别的对象数组,只会调用数组对象的ToString()方法输出类型名称,导致JS解析时出现语法错误,触发Unexpected token ']'报错。

解决方法

你需要手动将C#数组序列化为合法的JSON字符串,再输出到JS代码中,同时用Html.Raw禁止Razor自动转义JSON中的引号:

  • 如果你使用的是ASP.NET Core,直接使用内置的System.Text.Json序列化:
$(document).ready(function () {
    $('#users').DataTable({
        data: @Html.Raw(System.Text.Json.JsonSerializer.Serialize(ViewBag.UsersArray)),
        columns: [
            { data: 'id' },
            { data: 'username' },
            { data: 'balance' },
            { data: 'contract_id' }
        ]
    });
});
  • 如果你使用的是.NET Framework,使用Newtonsoft.Json序列化:
$(document).ready(function () {
    $('#users').DataTable({
        data: @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.UsersArray)),
        columns: [
            { data: 'id' },
            { data: 'username' },
            { data: 'balance' },
            { data: 'contract_id' }
        ]
    });
});
注意事项
  • 序列化时如果配置了驼峰命名转换,需要保证columns中配置的data字段名和序列化后的JSON属性名完全匹配,避免Datatable找不到对应字段报错。
  • 尽量不要直接用ViewBag传递复杂类型数据,优先考虑强类型视图模型传递数据,避免类型转换错误。

内容的提问来源于stack exchange,提问作者Abdulsalam Elsharif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:15:01