Arrays 如何在action方法中传递数组对象?

Arrays 如何在action方法中传递数组对象?,arrays,json,jqgrid,Arrays,Json,Jqgrid,方法$中出现错误。toJSON(批处理)该对象不支持此属性或方法。如何使用$.toJASON(batch)方法传递批处理数组 $.ajax({ type: 'POST', contentType: 'application/json; charset=utf-8', url: '@Url.Action("BatchUpdate", "Home")', dataType: 'json',

方法
$中出现错误。toJSON(批处理)
该对象不支持此属性或方法。如何使用
$.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');
            }
    });

我不知道什么是
toJSON
函数,所以我建议阅读这个答案


我同意Paul Grime的观点,使用
JSON.stringify
from作为
toJSON
jQuery插件更好。原因是在大多数web浏览器中,
JSON.stringify
本机实现的。您应该包括
json2.js
,以确保如果web浏览器不支持
JSON.stringify
将使用JavaScript实现。另一方面,典型的jQuery插件是纯JavaScript代码。因此,序列化将缓慢进行。此外,本文的作者是Douglas Crockford,他是JSON标准的作者,也是JavaScript语言方面非常著名的专家。因此,他在JavaScript中实现的JSON序列化确实是最好的


您的主要问题是另一个:为什么
data:$.toJSON(batch)
data:JSON.stringify(batch)
在您的代码中不起作用。问题不是jqGrid问题,而是纯粹的服务器端问题。您不需要编写您在服务器端使用的技术。该代码看起来像ASP.NET MVC代码,但不清楚您使用的是哪个版本的ASP.NET MVC。如果您使用3.0版,它应该会自动工作,但在2.0版的情况下,您需要注册自定义
JsonValueProviderFactory
(请参阅)。

我使用的是mvc的3.0.0.0版,我包含了json2.js文件,但仍然会遇到相同的错误:(@farhan:无论如何,这纯粹是ASP.MVC问题。因此,您应该至少包括您使用的
BatchUpdate
操作的原型,以及可用于重现您的问题的测试
batch