Jquery 在标准表单输入上发送Json数组

Jquery 在标准表单输入上发送Json数组,jquery,json,forms,asp.net-mvc-4,Jquery,Json,Forms,Asp.net Mvc 4,我有一个控件,它发出一个JSON数组,我需要将该数组转换为控制器上模型的列表,并试图找到一种通用的、可伸缩的方法来实现这一点。我假设有一些简单而明显的东西 所以我得到一个如下的数组: { { AddressId: 1, HouseNumber: 1, Street: "Any Street" }, { AddressId: 2, HouseNumber: 2, Street: "Any Street" }, { AddressId: 3, HouseNumber: 5, Stree

我有一个控件,它发出一个JSON数组,我需要将该数组转换为控制器上模型的列表,并试图找到一种通用的、可伸缩的方法来实现这一点。我假设有一些简单而明显的东西

所以我得到一个如下的数组:

{ 
  { AddressId: 1, HouseNumber: 1, Street: "Any Street" },
  { AddressId: 2, HouseNumber: 2, Street: "Any Street" },
  { AddressId: 3, HouseNumber: 5, Street: "Any Street" },
  { AddressId: 4, HouseNumber: 10, Street: "Any Street" },
  { AddressId: 5, HouseNumber: 1536, Street: "Any Street" }
}
模型:

public class AddressListModel {
   public string AnotherFormInput { get; set; }
   ...
   // A selection of other form input values that are on the page.
   ...
   public IList<AddressViewModel> Addresses { get; set; }
}

public class AddressViewModel { 
   public int AddressId { get; set; }
   public int HouseNumber { get; set; }
   public int Street { get; set; }
}
公共类AddressListModel{
公共字符串另一个输入{get;set;}
...
//页面上其他表单输入值的选择。
...
公共IList地址{get;set;}
}
公共类AddressViewModel{
public int AddressId{get;set;}
public int HouseNumber{get;set;}
公共int街{get;set;}
}
所以问题是,如果我在这个表单中已经有很多表单参数,然后我想在表单发布之前通过Javascript收集这个JSON数组,那么我怎么能认为将该数组作为标准表单参数附加呢

这不是通过Ajax实现的,只是一个标准的表单帖子。

使用
JSON.stringify()
将对象转换为字符串,然后将其插入表单的隐藏输入参数。主要浏览器支持;请参见,或者包括


显然,您需要在服务器端使用JSON解析器;e、 g.查看位于的Java部分。

我最后实际做的是捕获表单上的提交,然后将输入字段插入表单,使其成为标准参数


这不是一种优雅的方式,但它是有效的。

在“我得到这样一个数组”下面列出的项不是数组——它是一个对象(格式不正确)。如果您不想将其作为表单post的一部分,也不想完整回发,则需要使用ajax。@AndrewHitaker您明白了,因此,对于术语错误,我深表歉意。@Maess我需要它是一篇完整的文章,ajax应该是easy@Martin:我想我是说,为了对控件返回的内容进行模型绑定,您必须修复它输出的JSON(可能只是用方括号替换前大括号和后大括号,使其成为一个数组)问题是如何在服务器端无缝地完成。我可以在参数中获得它,但是我需要将列表无缝地反序列化到列表对象中。查看我熟悉如何反序列化JSON的Java部分,问题是如何在MVC中使其通用