0

モデルの配列をバックボーンの Post API メソッドに送信する方法は?

mvc アプリケーションで backbone.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 メソッドで null 配列を取得しています。モデルの配列を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 に答える