问题描述
|
我有这个控制器:
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);
}
});