Почему ajax-вызов дает parsererror с большим количеством записей - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть несколько областей данных от 30 до 1000 объектов.Когда содержимое массива меньше 400, оно работает, но если оно превышает это, я получу parsererror.Я попытался удалить изменение и удалить тип данных, но это возвращает нулевое / "" значение.Добавил заголовок HTTPPOST в метод mvc, но все равно ничего.

JavaScript:

function loadPatentListFromServer(sites, teams, users) {
    $.blockUI({ message: $('#workingIconContainer') });

    var requestData =
    {
        sites: sites,
        teams: teams,
        users: users,
        dFilter: dFilter,
        hfilter: hfilter
    };

    jQuery.ajax(
        {
            async: false,
            contentType: "application/json ; charset=utf-8",
            converters: Utills.jQueryAjaxJsondDataConverter,
            data: JSON.stringify(requestData),
            dataType: "jsond",
            type: "POST",
            url: _GET_REMOVE_TO_BIN_PATIENTS_SERVICE_URL,
            error: function (jqXHR, textStatus, errorThrown) {
                // Nothing
                var checkTheError = null;
                $.unblockUI();
            },
            success: function (data, textStatus, jqXHR) {
                _unfilteredList = data;

Метод контроллера:

[HttpPost]
public virtual JsonResult GetObjects(FooRecord FooRecord)
{
   //FooRecord FooRecord = new FooRecord();
    List<RemoverGridPatientRecord> viewModelData = LoadPatientListFromServer(FooRecord.sites, FooRecord.teams, FooRecord.users, FooRecord.dischargeFilter, FooRecord.hasnobillsfilter);

   var viewModelObjs = viewModelData.Select(r => new RemovetoBinModel
   {
            Id = r.Id as string,
            LastName = r.LastName as string,
            FirstName = r.FirstName as string,
            Di = r.Di as string,
            DiDate = r.DiDate as string,
            Ho = r.Ho as string,
            Team = r.Team as string,
            Patent = r.Patent as string,
            Missing = r.Missing as string,
            HasBi = r.HasBi as string
    }).OrderBy(x => x.LastName + x.FirstName).ToList();

    return Json(viewModelObjs, JsonRequestBehavior.AllowGet);
}

public class FooRecord
{
    public List<string> sites { get; set; }
    public List<string> teams { get; set; }
    public List<string> users { get; set; }
    public int d { get; set; }
    public int h { get; set; }
}

1 Ответ

0 голосов
/ 13 декабря 2018

Это может быть связано со свойством maxJsonLength, где его значение по умолчанию - 102400 (100k).Пожалуйста, добавьте следующий метод в ваш контроллер, чтобы установить для maxJsonLength максимальное значение int.

protected override JsonResult Json(object data, string contentType, Encoding contentEncoding, JsonRequestBehavior behavior)
{
    return new JsonResult()
    {
       Data = data,
       ContentType = contentType,
       ContentEncoding = contentEncoding,
       JsonRequestBehavior = behavior,
       MaxJsonLength = Int32.MaxValue
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...