jQuery DataTables在ASP.NET应用中无法正常运行问题求助
ASP.NET jQuery DataTables 不运行问题修复方案
- 修正表格HTML结构
jQuery DataTables要求标准的表格结构,必须显式包含<thead>(表头区域)和<tbody>(数据区域)标签,你当前的表格未做分区,且将验证摘要行放在表格内部,会导致DataTables解析列数异常。修正后的表格代码如下:
<table id="myusers" class="table table-bordered table-hover"> <thead> <tr> <th>@Html.DisplayNameFor(model => model.Id)</th> <th>@Html.DisplayNameFor(model => model.Name)</th> <th>@Html.DisplayNameFor(model => model.email)</th> <th>@Html.DisplayNameFor(model => model.phone)</th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td>@Html.DisplayFor(modelItem => item.Id)</td> <td>@Html.DisplayFor(modelItem => item.Name)</td> <td>@Html.DisplayFor(modelItem => item.email)</td> <td>@Html.DisplayFor(modelItem => item.phone)</td> </tr> } </tbody> </table> <!-- 验证摘要移出表格,避免破坏表格结构 --> @Html.ValidationSummary(true, "", new { @class = "text-danger" })
- 检查资源加载是否正常
你配置的脚本加载顺序是正确的(lib bundle先于自定义scripts节加载,jQuery优先级高于DataTables),需要确认两点:Scripts和Content目录下的DataTables相关文件路径与bundle.config中配置的路径完全一致,无拼写错误、文件缺失问题- 可暂时关闭bundle压缩测试是否是压缩导致的脚本冲突,在
Global.asax.cs的Application_Start方法中添加代码:BundleTable.EnableOptimizations = false;
- 排查控制台报错
打开浏览器开发者工具(按F12)切换到Console标签,刷新页面后查看是否有JS报错,常见报错对应问题:$ is not defined:jQuery未正常加载DataTable is not a function:DataTables脚本未正常加载- 列数不匹配错误:表格结构异常,按第一条修改即可
- 确认视图语法正确
检查@section scripts的大括号是否正确闭合,你粘贴的代码中闭合大括号位于script标签外的独立位置,要确认实际代码中没有Razor语法错误。
内容的提问来源于stack exchange,提问作者ali amr
相关产品推荐
相关产品推荐

