【问题标题】:datatables.net: Error handling for server side processingdatatables.net:服务器端处理的错误处理
【发布时间】:2017-08-04 13:46:16
【问题描述】:

我已经使用 DataTables.Aspnet.Core 和 DataTables.AspNet.WebApi2 nuget 在 MVC 应用程序上设置了带有服务器端处理的 datatables.net。一切正常,数据加载并显示正常。

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

// 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 我认为是这种情况,因为我没有向客户端发送任何数据?

如何防止出现此错误?

【问题讨论】:

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


    【解决方案1】:

    我无法通过添加一个空数据集在服务器端解决此问题,因为这不会与 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 || [];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      相关资源
      最近更新 更多