使用JSON,JQuery向ASP.NET MVC Controller发布一系列复杂对象

我知道这个问题在此之前已被触及过

但解决方案似乎不适合我的问题。

这是我的HTML。 行数是可变的

Begin End

js构建一个对象数组并将它们发布到控制方法中

  $(function() { submitForm = function() { var items = new Array(); $("#workPlanTable tr").each(function(i) { var end = $(this).find(".end").val(); var begin = $(this).find(".begin").val(); var item = { "Begin": begin, "End": end }; items.push(item); } ); var postData = { myItems: items }; $.ajax({ url: '~/WorkPlan/AjaxUpdate', type: 'POST', dataType: 'json', data: postData, contentType: 'application/json; charset=utf-8', success: function(result) { alert(result.Result); } }); } } )  

每行代表一个WorkPlanItem。 我的目标是将它们全部发布到我的控制器以更新它们。

我似乎无法在我的控制器方法(AjaxUpdate)中找到如何访问数组的方法

您可以将表单序列化为Vikas发布 ,或者您可以使用stringify 函数,如果您更喜欢浏览页面(正如您当前所做的那样)并使用postData数组。

在控制器上,您将需要处理json字符串。 您可以使用System.Web.Script.Serialization.JavaScriptSerializer 类对其进行反序列化。 如果您有一个映射到您传递的数据的对象,则可以使用Deserialize方法。 如果不这样做,您仍然可以使用DeserializeObject ,但是它会为您提供一个Dictionary集合,您必须通过该集合来获取数据。 不完全有趣(相信我),但它的确有效。