将数组从jQuery传递给MVC.NET控制器,在控制器上给出null结果,但jQuery函数上存在值

我正在尝试将数组从jQuery函数传递给我的控制器。 该数组包含内容和持有该内容的div的id。

当我检查通过Firebug中的AJAXpost发送的对象时,正确的值存在但是在我的控制器上放置一个断点后,接收的值是一个空的List或Array或我尝试将其设置为的任何类型。 我很擅长使用JSON将数据传递给我的控制器,所以在我出错的地方会有所帮助。

jQuery函数调用“提交”单击。 该数组在我的脚本中全局声明,并在每次用新内容填充新区域时添加。

function postContent() { $.ajax({ type: "POST", datatype: 'json', url: "/Admin/getContentArray", data: JSON.stringify(contentArray), contentType: 'application/json; charset=utf-8', success: function (result) { alert(result.Result); } }); } 

测试接收控制器

 [HttpPost] public JsonResult getContentArray(List myPassedArray) { var data = myPassedArray; return this.Json(null); } 

您可以查看以下博客文章 。 希望它能澄清一切。 基本上有两种情况:ASP.NET MVC 3,您可以将JSON请求发送到开箱即用的控制器操作以及之前需要使用自定义JsonValueProviderFactory ASP.NET MVC版本。

我通过在进行调用之前将传统属性设置为true来实现此function。 即:

 jQuery.ajaxSettings.traditional = true $.get('/controller/MyAction', { vals: arrayOfValues }, function (data) {... 

我在这里找到了解决方案: 通过AJAX将数组传递给mvc Action