Загрузка структуры сущностей дважды при обработке на стороне сервера, ошибка броска данных - PullRequest
0 голосов
/ 26 сентября 2018

В настоящее время я использую базу данных с MVC core2.0 для создания своего приложения, однако, когда я пытаюсь дважды получить доступ к базе данных в коде сервера, браузер выдаст мне сообщение об ошибке Failed to load resource: net ::ERR_SPDY_PROTOCOL_ERROR

ниже приведены мои параметры данных в формате js

 settingsInitEmpty = {
            ajax: ({
                url: "/Batch/LoadWithdrawalListData?batch_id=@Context.Request.Query["batchID"].ToString()&search_type=" + search_type + "&value=" + value + "&status=" + status + "&agent=" + agent,
                type: "POST",
                datatype: "json"
            }),
            // ### FOR SERVERSIDE LOADING
            processing: true,
            serverSide: true,
            filter: false,
            orderMulti: false,
            order: [[2, "desc"]],
            columnDefs: [
                { targets: 0, className: 'text-center', orderable: false },
                { targets: 1, className: 'text-center', orderable: false },
                { targets: 2, className: 'text-left' },
                { targets: 3, className: 'text-center' },
                { targets: 4, className: 'text-right' },
                { targets: 5, className: 'text-right' },
                { targets: 6, className: 'text-right' },
                { targets: 7, className: 'text-right' },
                { targets: 8, className: 'text-center' },
                { targets: 9, className: 'text-left' },
                { targets: 10, className: 'text-center' },
                { targets: 11, className: 'text-center'  },
                { targets: 12, className: 'text-center', orderable: false },
            ],
            columns: [
                { data: "id", name: "id", autoWidth: true },
                { data: "name", name: "name", autoWidth: true },
                { data: "amount", name: "amount", autoWidth: true, render: $.fn.dataTable.render.number(',', '.', 2, 'US$ ') },
                { data: "xchangeRate", name: "xchangeRate", autoWidth: true },
                { data: "processingFee", name: "processingFee", autoWidth: true, render: function (data, type, row) { if (row.processingFee != null) { return '¥ ' + row.processingFee; }else return '' } },

На стороне сервера следующий код соответствует моему коду

  var userAgentList =  _userManager.Users.Where(x=>x.Role == "Agent");
            var draw = Request.Form["draw"].FirstOrDefault();
            var start = Request.Form["start"].FirstOrDefault();
            var length = Request.Form["length"].FirstOrDefault();
            //Find Order Column
            var sortColumn = Request.Form["columns[" + Request.Form["order[0][column]"].FirstOrDefault() + "][name]"].FirstOrDefault();
            var sortColumnDir = Request.Form["order[0][dir]"].FirstOrDefault();

            //var search_type = HttpUtility.UrlDecode(Request.Query["search_type"]);
            //var value = HttpUtility.UrlDecode(Request.Query["value"]);
            var batch_id = HttpUtility.UrlDecode(Request.Query["batch_id"]);
            var search_type = HttpUtility.UrlDecode(Request.Query["search_type"]);
            var value = HttpUtility.UrlDecode(Request.Query["value"]);
            var status = HttpUtility.UrlDecode(Request.Query["status"]);
            var agent =HttpUtility.UrlDecode(Request.Query["agent"]);


            int pageSize = length != null ? Convert.ToInt32(length) : 0;
            int skip = start != null ? Convert.ToInt32(start) : 0;
            int recordsTotal = 0;

            IQueryable<WithdrawalRecords> withdrawalList = _context.WithdrawalRecords;
            //query = query.Where(p => p.product_name.Contains(pageModel.searchList.product_name));

            withdrawalList = withdrawalList.Where(p => p.BatchId.Equals(batch_id));


            //SORT
            if (!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir)))
            {
                withdrawalList = withdrawalList.OrderBy(sortColumn + " " + sortColumnDir);
            }
            recordsTotal = withdrawalList.Count();
            var data2 = withdrawalList.Skip(skip).Take(pageSize).ToList();

            List<string> serial = new List<string>();
            for (int a = 0; a < data2.Count(); a++)
            {
                if (!String.IsNullOrWhiteSpace(data2[a].SubBatchId))
                {
                    serial.Add(data2[a].SubBatchId);
                }
            }
            _context.SaveChanges();
            var subBatchList = _context.SubBatch.Where(x => serial.Contains(x.Id)).ToList();
            for (int a = 0; a < subBatchList.Count(); a++)
            {
                var agentName = userAgentList.Where(x => x.Id == subBatchList[a].AgentId).Single().Name;
                for (int b = 0; b < data2.Count(); b++)
                {
                    if (data2[b].SubBatchId == subBatchList[a].Id)
                    {
                        data2[b].Comment = agentName;
                    }
                }
            }


            var result = Json(new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = data2 });
            return result;

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

enter image description here

Пожалуйста, смотрите мой код на c #, если я закомментирую вторую функцию tolist (), которая получает данные из db, вся функция в порядке, ошибка возникает только тогда, когда у меня есть функция 2 tolist в функции c #

...