Как решить проблему с Datatables - PullRequest
0 голосов
/ 04 мая 2020

У меня проблема с загрузкой списка записей, сделанных в DataTables с использованием C#, проблема в том, что при загрузке таблицы возникает следующая ошибка

enter image description here

Как только это произойдет, я рассмотрю ошибку в консоли браузера, она показывает мне следующее:

enter image description here

Ниже приведен код в контроллере, с которым загружается список записей

    /// <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 секунд, чтобы загрузить, и это происходит иногда, это не всегда выходит, это таблица с примерно 6000 записей. Какое решение вы можете дать мне, по крайней мере, если сообщение, которое я добавляю в начале, не отображается, я думал о том, как удалить исключение, пока вы можете рассмотреть его более подробно, или какое другое решение вы можете дать мне.

1 Ответ

0 голосов
/ 04 мая 2020

Если вы не настроили свое приложение для регистрации исключений, лучше всего обычно открывать окно просмотра событий Windows и просматривать журнал приложений.

Вы можете отфильтровать журнал, чтобы показать только ошибки и критические. Это обычно помогает.

Ошибки HTTP 500, подобные той, которую вы часто получаете, появляются здесь в средстве просмотра событий.

enter image description here

Если вы можете отлаживать свое приложение, вы можете настроить VS так, чтобы он работал на всех исключениях, проверив здесь проверку на Common Language Runtime Исключения в вашем окне настроек исключений. Тогда просто вызовите проблему, и VS перестанет рассказывать вам, что происходит.

enter image description here

Я предполагаю, что вы просто не можете отладить приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...