1

.NET MVC を使用してバックボーン コレクションを取得していますが、コレクションを正しく設定できません。必要なデータは返されますが、コレクションに正しく挿入されません。

以下は、コレクションのフェッチに関連するすべての詳細です。

私のモデル

_.namespace('My.Model');

My.Model.UserAssistance = Backbone.Model.extend({

    defaults: {
        Id : '',
        Title: '',
        Content: '',
        Width: 175,
        Popover: true,
        ArrowPosition: "top-left",
        ArrowDimensions: {
            width: 0,
            height: 0
        }
    }

});

私のコレクション

_.namespace('My.Collection');

My.Collection.UserAssistance = Backbone.Collection.extend({

    url: function () {
        return '/user-assistance'
    },

    model: My.Model.UserAssistance
});

コレクションの取得

this.collection = new My.Collection.UserAssistance();

        var $elements = $('[data-help-id]'),
            values = $elements.map(function () {
                return $(this).data('help-id');
            }).get();

        this.collection.fetch({
            data: {
                HelpIds : values
            },
            // required for correct serialization of the array
            traditional: true
        });

コントローラー方式

        [Authorize]
        [AcceptVerbs(HttpVerbs.Get)]
        public JsonResult Default(List<string> HelpIds)
        {
            List<UserAssistanceViewModel> models = new List<UserAssistanceViewModel>();

            foreach (string helpId in HelpIds)
            {
                UserAssistanceViewModel model = new UserAssistanceViewModel();

                model.Content = (Resources.UserAssistance.Content.GetResourceById(helpId));
                model.Title = (Resources.UserAssistance.Titles.GetResourceById(helpId));
                model.Id = helpId;
                models.Add(model);
            }

            return Json(new
            {
                models : models
            }, JsonRequestBehavior.AllowGet);
        }

コレクションが返されると、コレクションは次のように更新されます。

userAssistance.collection.toJSON()

[
Object
ArrowDimensions: Object
ArrowPosition: "top-left"
Content: ""
Id: ""
Popover: true
Title: ""
Width: 175
models: Array[6]
  0: Object
  1: Object
  2: Object
  3: Object
  4: Object
  5: Object
  length: 6
  __proto__: Array[0]
__proto__: Object

私は明らかに何か間違ったことをしていますが、返されるデータをフォーマットする方法が他にわかりません。実際には、「モデル」と呼ばれるオブジェクトの配列の形でサブレベルを追加していることがわかります。

4

1 に答える 1