C# 将JSON列表绑定到视图模型
ASP MVC-C-.NET 4.5-Razor 以下是我的视图模型:C# 将JSON列表绑定到视图模型,c#,asp.net-mvc,json,C#,Asp.net Mvc,Json,ASP MVC-C-.NET 4.5-Razor 以下是我的视图模型: public class PackageModel { public List<Package> Packages { get; set; } } 在页面上,我列出了控件文本框、日期选择器等。类包中的每个元素都有一个控件列表。在这些控件下面,我有一个按钮,它将获取这些控件中填充的数据,并将它们添加到下表中。在幕后,它们实际上被添加到JSON数组中。我的问题是,当我提交此表单时,如何将对象的JSON数组
public class PackageModel
{
public List<Package> Packages { get; set; }
}
在页面上,我列出了控件文本框、日期选择器等。类包中的每个元素都有一个控件列表。在这些控件下面,我有一个按钮,它将获取这些控件中填充的数据,并将它们添加到下表中。在幕后,它们实际上被添加到JSON数组中。我的问题是,当我提交此表单时,如何将对象的JSON数组绑定到模型PackageModel,使其在控制器中可用
谢谢你的帮助
更新
这是模型控制器
[HttpPost]
public ActionResult SubmitPackage(IList<Package> Packages)
{
}
更新2
事实证明,我只是缺少jQueryAjax调用中定义的内容类型。需要这一行:
contentType: 'application/json; charset=utf-8'
可能是这样。如果没有,则将PackageModel序列化为JSON,并修改生成的JSON以匹配,以便将其反序列化为PackageModel。e、 g.您可能需要将数组标记为包,并将其放在自己的对象中,而不是将其放在自己的对象中。如果我理解正确,您在JavaScript中有对象的JSON数组,只想将其作为PackageModel发布到控制器?可能是重复的@这是正确的。但是,当我将JSON发回控制器时,它会说列表中有0条记录。@是的,非常相似。我已经修改了我的代码以匹配您发布的链接中的示例,但是我在控制器中得到的模型为null。
[{"Name":"Test","Description":"TestDesc","Qty":"1","Received":"12/12/2013"}]
contentType: 'application/json; charset=utf-8'