【问题标题】:How to solve problema with Datatables如何解决数据表的问题
【发布时间】:2020-08-19 05:12:18
【问题描述】:

我在使用 C# 加载 DataTables 中的记录列表时遇到问题,问题是加载表格时出现以下错误

一旦发生这种情况,我将在浏览器控制台中查看错误,它会显示以下内容:

以下是加载记录列表的控制器中的代码

    /// <summary>
    /// Obtain tickets from the database and process them to be presented in the Datatable
    /// </summary>
    /// <returns>Json with the tickets available in the system</returns>
    [HttpPost]
    public JsonResult GetMyTickets([ModelBinder(typeof(DataTablesBinder))]
        IDataTablesRequest requestModel)
    {
        using (var db = new dbGoldenTicket())
        {
            IQueryable<TicketsResult> query;               
            if (string.Equals(Session["tipo"].ToString(), "admin", StringComparison.OrdinalIgnoreCase) ||
                     string.Equals(Session["tipo"].ToString(), "mesa", StringComparison.OrdinalIgnoreCase) ||
                     string.Equals(Session["tipo"].ToString(), "coor", StringComparison.OrdinalIgnoreCase))
                query = TicketListModel.ConsultTicketListTech(Session["area"].ToString(),
                    Session["matricula"].ToString(), db);
            else
            {
                query = null;
            }

            var totalCount = query.Count();

            // Searching 
            if (requestModel.Search.Value != string.Empty)
            {
                var value = requestModel.Search.Value.Trim();
                query = query.Where(p => p.TicketFolio.Contains(value) ||
                                         p.TicketAplicant.Contains(value) ||
                                         p.TicketService.Contains(value) ||
                                         p.TicketStatus.Contains(value) ||
                                         p.TicketSubjet.Contains(value) ||
                                         p.TicketEmployee.Contains(value) ||
                                         p.Origin.Contains(value) ||
                                         p.SLALabel.Contains(value)
                );
            }

            var filteredCount = query.Count();

            // Sorting 
            var sortedColumns = requestModel.Columns.GetSortedColumns();
            var orderByString = string.Empty;

            foreach (var column in sortedColumns)
            {
                orderByString += orderByString != string.Empty ? "," : "";
                orderByString += column.Data +
                                 (column.SortDirection == Column.OrderDirection.Ascendant ? " asc" : " desc");
            }

            query = query.OrderBy(orderByString == string.Empty ? "TicketFolio desc" : orderByString);

            // Paging 
            query = query.Skip(requestModel.Start).Take(requestModel.Length);

            var data = query.Select(ticket => new
            {
                ticket.TicketId,
                ticket.TicketFolio,
                ticket.TicketAplicant,
                ticket.TicketService,
                ticket.TicketStatus,
                ticket.TicketSubjet,
                ticket.TicketEmployee,
                ticket.TicketSLAHourType,
                ticket.TicketSLAHours,
                ticket.Origin,
                ticket.SLALabel
            }).ToList();

            return Json(new DataTablesResponse(requestModel.Draw, data, filteredCount, totalCount));
        }
    }

有趣的是,在加载超过 30 秒后会显示错误,并且这种情况偶尔会发生,并不总是出现,它是一个包含大约 6,000 条记录的表。你能给我什么解决方案,至少我在开头添加的消息没有显示,我在想像删除异常,而你可以更详细地查看它或者你能给我什么其他的解决方案。

【问题讨论】:

    标签: c# jquery datatable datatables


    【解决方案1】:

    如果您尚未将应用程序配置为记录异常,最好的办法通常是打开 Windows 事件查看器并查看应用程序日志。

    您可以过滤日志以仅显示错误和关键。这通常会有所帮助。

    HTTP 500 错误,就像您在事件查看器中经常遇到的错误一样。

    如果您能够调试您的应用程序,您可以配置 VS 以中断所有异常,方法是确保在您的异常设置窗口中检查公共语言运行时异常。然后只要触发问题,VS就会停下来告诉你发生了什么。

    不过,我假设您只是无法调试应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多