datatables.net:服务器端处理的错误处理

时间:2017-08-04 13:46:16

标签: asp.net-mvc error-handling datatables nuget

我使用DataTables.Aspnet.Core& amp;在MVC应用程序上使用服务器端处理设置了datatables.net。 DataTables.AspNet.WebApi2 nugets。一切正常,数据加载并显示正常。

如果服务器端出现问题,我会捕获异常并返回包含我的自定义错误消息的结果:

// IDataTablesRequest tableRequest
return new DataTablesJsonResult(Response.Create(tableRequest, "my custom error message"), Request);

在客户端,我也注册了错误事件:

$.fn.dataTable.ext.errMode = 'none';
this.$dataTable.on('error.dt', this.onDataTableError.bind(this));

这也可以,我可以解析响应并检查我的自定义消息。

现在出现问题:处理错误后我总是遇到可怕的问题Uncaught TypeError: Cannot read property 'length' of undefined我认为是这种情况因为我没有向客户发送任何数据?

如何防止此错误?

1 个答案:

答案 0 :(得分:0)

我无法通过添加空数据集来修复服务器端,因为这不会与json一起传递。

我最终做的是确保客户端始终有数据阵列:

// register to ajax request event
this.$dataTable.on('xhr.dt', this.afterAjax.bind(this));

// set empty array to make sure we have no issue 
// with null references on data.length for loop
afterAjax(event: JQueryEventObject, settings: any, payload: any, response: any): void {
        payload.data = payload.data || [];
}