如何解决将复杂数组从客户端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);
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。