Я согласен с Полом Граймом, что использование 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
(см. здесь ).