将项添加到JSON对象

我有一种情况,我只是无法弄清楚该怎么做。 我正在尝试将项添加到从控制器发送的JSON对象。

这是我的模特:

public class Model1 { public Model2 item {get;set;} public List items {get;set;} // 

并在页面中

  var jsonData = @Html.Raw(JSON.Encode(Model)) 

这给了我基本但空洞的模型。 现在在页面中我填写了各个字段,并希望将这些项目添加到模型中以便发布。 所以:

  jsonData.item.field1 = $("#field1").val(); 

然后我想添加到项目列表,但我找不到任何有效的东西:

  jsonData.items.add(jsonData.item) 

不起作用会引发错误。

  jsonData.items.push(jsonData.item); 

有效,但我添加的每个项目都相同。 这意味着当我添加第二个项目时,列表中有两个但它们具有相同的值。 任何帮助,将不胜感激。

我们知道,Javascript可以用作OO语言,并且可以在javascript中动态创建类和对象。 根据我的理解,您使用下面的代码来获取JavaScript中的类属性

  var jsonData = @Html.Raw(JSON.Encode(Model)) 

当此JSON返回到客户端时,它被视为单个对象。

所以,你可以声明一个函数,作为类:

  function Model2(jsonData ) { this.name = jsonData.name; this.discovered = jsonData.discovered; }; var objModel2_1= new Model2(jsonData); 

现在,您可以声明一个数组来添加objModel2。

 var arrModel2=[]; // add new objects attModel.push(objModel2_1); 

最后,完成后,您可以使用现有的jsonData对象来填充ie

  jsonData.item=objModel2_1; jsonData.items=attModel; 

希望对你有帮助。