Инициализация viewmodel с данными по умолчанию с сервера - PullRequest
3 голосов
/ 14 июля 2011

Как мы заполняем данные в модели представления knockoutjs при первом обращении к странице? То есть, когда представление отображается в первый раз.

Мой класс View Model содержит список объектов. Я хочу, чтобы свойство модели представления knockoutjs было инициализировано этим значением.

Я попробовал приведенный ниже код, но он не работает со следующей ошибкой:

При сериализации объекта типа обнаружена круговая ссылка.

Это мой код:

var mylist = @Html.Raw(Json.Encode(Model.list));

 var viewModel = {
     list: ko.observableArray(myList),
 };

Стандартный выпадающий список работает с тем же свойством. Похоже на проблему с сериализацией?

<div class="editor-field">
@Html.DropDownListFor(model => model.list, new SelectList(Model.list, "id", "name"), "-- select --")
</div>

1 Ответ

2 голосов
/ 14 июля 2011

Вы должны использовать модель представления, которая не имеет циклических ссылок, иначе вы не сможете JSON ее сериализовать (Json.Encode(Model.list)).Я предполагаю, что это свойство Model.list является коллекцией некоторых объектов, которые имеют циклические ссылки между ними.Вам нужно будет удалить свойства из вашей модели представления, которые вызывают эти циклические ссылки, если вы хотите иметь возможность JSON-сериализации вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...