Javascript 将JSON对象列表传递给操作
在我的ASP.NET MVC 2项目中有这样一个模型Javascript 将JSON对象列表传递给操作,javascript,asp.net-mvc,json,asp.net-mvc-2,Javascript,Asp.net Mvc,Json,Asp.net Mvc 2,在我的ASP.NET MVC 2项目中有这样一个模型 public class HomeModel { public string Name { get; set; } public int HomeCount { get; set; } private List<string> _list; public List<string> List { get
public class HomeModel
{
public string Name { get; set; }
public int HomeCount { get; set; }
private List<string> _list;
public List<string> List
{
get
{
if (_list == null)
{
_list = new List<string>();
}
return _list;
}
set
{
_list = value;
}
}
private List<ChildModel> _children;
public List<ChildModel> Children
{
get
{
if (_children == null)
{
_children = new List<ChildModel>();
}
return _children;
}
set
{
_children = value;
}
}
}
public class ChildModel
{
public string Address { get; set; }
}
我的问题是,即使字符串列表是在控制器的操作中生成的,对象列表的计数也是0。有人能告诉你怎么做吗?当你提交一个对象作为jQuery的ajax负载时,它会被转换成数据的键/值对。例如,如果这是$.get而不是$.post,那么您将得到 ?姓名=我的姓名等 这篇文章应该能让你找到你想要的东西: 我还建议在这里使用json/对象文字符号: var obj={ 姓名:“我的名字”, 户数:56, 名单:[“AAA”、“bbb”], 儿童:{ 地址:“ccc”, 儿童:[ //等 ] } } 请参见json.org了解规范,并参见jslint.com/jshint.com了解验证
var obj = new Object();
obj.Name = "MyName";
obj.HomeCount = 56;
obj.List = new Array();
obj.List[0] = "AAA";
obj.List[1] = "bbb";
var child = new Object();
child.Address = "ccc";
obj.Children = new Array();
obj.Children[0] = child;
var child2 = new Object();
child.Address = "ddd";
obj.Children[1] = child2;
jQuery.ajaxSettings.traditional = true
$.post('/Home/Test',obj, function (data) { });