C# 使用列表传递自定义模型*<;CustClass>;*通过ajax调用

C# 使用列表传递自定义模型*<;CustClass>;*通过ajax调用,c#,ajax,jsonresult,C#,Ajax,Jsonresult,我在将json字符串传递到控制器中的jsonResult时遇到了一些问题。除了列表之外,所有的第一级变量都很好,它总是返回一个默认的空列表,当它应该被我传入的对象列表(列表)填充时 ajax调用,大致如下所示: var model = { Id: id, Name: name, Items: [{ Name: itemName[0], Color: itemColor[0] },{ Name: itemName[1]

我在将json字符串传递到控制器中的jsonResult时遇到了一些问题。除了
列表
之外,所有的第一级变量都很好,它总是返回一个默认的空列表,当它应该被我传入的对象列表(列表)填充时

ajax调用,大致如下所示:

var model = {
    Id: id,
    Name: name,
    Items: [{
        Name: itemName[0],
        Color: itemColor[0]
    },{
        Name: itemName[1],
        Color: itemColor[2]
    }]
};

$.ajax({
    url: "/@path",
    type: "POST",
    data: JSON.stringify(model),
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    cache: false,
    traditional: true
});
我的C#model沿着

public class MyModel
{
    public int Id { get; set; }
    public string Name { get; set; }

    public class Item {
        public string Name { get; set; }
        public string Color { get; set; }
    }
    public List<Item> Items = new List<Item>();
}

我做错了什么?这可能吗?

不要实例化列表以正确映射它。因为模型的绑定发生在类的实例化之后

public class MyModel
{
    public int Id { get; set; }
    public string Name { get; set; }

    public class Item {
        public string Name { get; set; }
        public string Color { get; set; }
    }
    public List<Item> Items {get; set;}
}
公共类MyModel
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共类项目{
公共字符串名称{get;set;}
公共字符串颜色{get;set;}
}
公共列表项{get;set;}
}

您是否尝试不实例化列表?@Katana这是什么意思?public list Items={get;set;}@Katana这正是问题所在。。。没有意识到变量通过结果需要一个{get;set}方法。它现在可以工作了吗?
public class MyModel
{
    public int Id { get; set; }
    public string Name { get; set; }

    public class Item {
        public string Name { get; set; }
        public string Color { get; set; }
    }
    public List<Item> Items {get; set;}
}