我在将json字符串传递给控制器中的jsonResult时遇到了一些麻烦。除了List<CustClass>
总是返回默认空列表时,所有的第一级变量都很好,因为它应该填充对象列表(List&lt;&gt;) 我过去了。
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#模型沿着
的方向看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>();
}
结果:
[HttpPost]
public JsonResult MyResult(MyModel model)
{
// Do Stuff
}
我在这里做错了什么?这甚至可以吗?
答案 0 :(得分:1)
不要实例化您的列表以正确映射它。由于模型的绑定发生在类的实例化之后。
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;}
}