我们如何在首次调用页面时在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>
答案 0 :(得分:2)
您应该使用没有循环引用的视图模型,否则您将无法对其进行JSON序列化(Json.Encode(Model.list)
)。我想这个Model.list
属性是一些对象的集合,它们之间有循环引用。如果您希望JSON序列化模型,则必须从视图模型中删除导致这些循环引用的属性。