将复杂数组从客户端Javascript发送到服务器端ASP.NET MVC2

问题描述

| 我有这个控制器:
public HomeController : Controller
{
   public ActionResult(MyObj[] myObjArr)
   {
   }
}
public class MyObj
{
  public Datetime d {get;set;}
  public int x{get;set;}
  public string yy {get;set;}
}
我的JavaScript代码如下:
var obj = { d:new Date(),x : 10,yy : \'hello\' };

$.ajax({
            type: \"POST\",url: server,dataType:\"json\",data: {obj,obj},success: function(data) {
                alert(data);
            }
        });
它根本行不通,我尝试过:
$.JSON({obj,obj});
JSON.stringify({obj,obj});
关于数据,但一无所获。 我可能已经尝试了所有可能的组合,但在服务器端myObjArr一直保持为空,我尝试了许多walkthroghts,我将[]替换为List,ICollection等 有什么建议么? 谢谢。

解决方法

这对我来说似乎很好。
public HomeController : Controller
{
   public ActionResult(MyObj[] myObjArr)
   {
   }
}
public class MyObj
{
  public Datetime d {get;set;}
  public int x{get;set;}
  public string yy {get;set;}
}
JS:
function makeParams(arr,namespace) {
    var tempObj = {};
    for (var i = 0; i < arr.length; i++) {
        var o = arr[i];
        for (var k in o) {
                tempObj[namespace + \"[\" + i + \"].\" + k] = o[k];
        }
    }
    return tempObj;
}

var arr = [{ d:new Date(),x : 10,yy : \'hello\' }];
var namespace = \"myObjArr\";
var data = makeParams(arr,namespace); //eg. { \'myObjArr[0].x\': 10 }
$.ajax({
            type: \"POST\",url: server,dataType:\"json\",data: data,success: function(data) {
                alert(data);
            }
        });