Как передать объект массива в метод действия? - PullRequest
0 голосов
/ 20 сентября 2011

Я получаю сообщение об ошибке в методе $.toJSON(batch), что объект не поддерживает это свойство или метод.Как я могу передать пакетный массив, используя метод $.toJASON(batch)?

$.ajax({
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            url: '@Url.Action("BatchUpdate", "Home")',
            dataType: 'json',
            //data: '{viewModelsBatch: '+batch+'}',
            data: $.toJSON(batch),
            success: function(result) {
              //...
              $('#jqgProducts').trigger('reloadGrid');
            }
    });

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Я согласен с Полом Граймом, что использование JSON.stringify из json2.js лучше в качестве toJSON jQuery-плагина. Причина в том, что JSON.stringify является нативным , реализованным в большинстве веб-браузеров. Вы должны включить json2.js только для того, чтобы убедиться, что если веб-браузер не поддерживает JSON.stringify, будет использоваться реализация на JavaScript. Типичный плагин jQuery с другой стороны - чистый код JavaScript. Таким образом, сериализация будет медленно . Кроме того, автором json2.js является Дуглас Крокфорд - автор стандарта JSON и очень известный специалист по языку JavaScript. Так что его реализация сериализации JSON в JavaScript действительно лучшая.

Ваш главный вопрос был другим: почему data: $.toJSON(batch) или data: JSON.stringify(batch) не будут работать в вашем коде. Проблема не в jqGrid, а в проблемах на стороне сервера. Вы не написали, какую технологию вы используете на стороне сервера. Код выглядит как код ASP.NET MVC, но неясно какую версию ASP.NET MVC вы используете . Если вы используете версию 3.0, она должна работать автоматически, но в случае версии 2.0 вам необходимо зарегистрировать пользовательский JsonValueProviderFactory (см. здесь ).

0 голосов
/ 20 сентября 2011

Я не знаю, что такое функция toJSON, поэтому я рекомендую прочитать этот ответ.

Сериализация в JSON в jQuery

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