0

如何将模型数组发送到主干中的 Post API 方法?

我在我的 mvc 应用程序中使用了主干.js,我有一个场景,我必须将一个数组传递给我在 Rest API 中的 Post 方法。我正在尝试发送一组模型,然后调用 this.collection.create(model)。我试图将 Post 方法称为

     var ModelArray = Backbone.Model.extend({
                            urlRoot: av.api.patientInsuranceAddress,
                            toJSON: function () {
                                return this.collection.toJSON();
                            }
                        });

                        var modelCollection = new ModelArray(
                            {
                                collection: this.collection.models
                            });

                        modelCollection.save();

这里 e.models 是一个模型数组,我将其转换为 json 并调用 Post 方法,我想像这样在 Post 方法上接收模型数组

public HttpResponseMessage Post(InsuranceAddressViewModel[] model)
{
return null;
}

但是我在 Post 方法中得到了空数组。我将模型数组转换为 json 的方法是好的还是必须做其他事情。我已经尝试了几个解决方案,但无法理解。请指导

我正在尝试这个 解决方案

当控件涉及模型中的 toJSON 时。它给出了 Uncaught RangeError: Maximum call stack size exceeded。请指导


    I am posting my code here 

       var PayerAddress = Backbone.Model.extend({
       urlRoot: av.api.patientInsuranceAddress,
       defaults: {
        Address: '',
        City: '',
        State: '',
        Zip: ''
     },
      toJSON: function () {
         return this.collection.toJSON();
      }

                     });

        var Payers = Backbone.Collection.extend({
       //url: av.api.patientInsuranceAddress,
     model: PayerAddress,

 });

       "Done": {
                    class: 'btn',
                    text: "Done",
                    click: function () {
                        payerName = self.$el.find('#Payer').val();

                        var ModelArray = Backbone.Model.extend({
                            urlRoot: av.api.patientInsuranceAddress,
                            toJSON: function () {
                                return this.collection.toJSON();
                            }
                        });

                        var modelCollection = new ModelArray(
                            {
                                collection: self.collection.models
                            });

                        modelCollection.save();
                        //self.closedialog();
                        $(this).dialog("close");
                    }
                }
4

1 回答 1

1

您是在尝试将模型添加到现有集合中,还是尝试用一堆模型替换您的集合?如果后者使用:

this.collection.reset(e.models);

以下this.collection.create(myArrayofModels );'用于在集合中创建模型的新实例。在上面的示例中,您正在粘贴一个字符串。Backbone 然后尝试将该字符串作为模型添加到您的集合中。

于 2012-12-12T06:23:30.077 回答