我正在尝试将我的MVC应用程序转换为使用knockoutjs,我在我的视图中有这个代码:
var itemsCount = 0;
<div class="boxes-container">
@foreach (ItemModel i in Model.Items)
{
if (itemsCount >= Model.DisplayCount)
{
@Html.Raw("</div><div class='boxes-container'>")
itemsCount = 0;
}
Html.RenderPartial("PartialItemView", i);
itemsCount++;
}
</div>
现在,淘汰赛我有类似的东西
this.Items = ko.observableArray(tmp.Items); // [Object { field1="52", field2="56", arr=[1], more...},Object { field1="52", field2="56", arr=[1], more...},Object { field1="52", field2="56", arr=[1], more...}]
this.DisplayCount = ko.observable(tmp.DisplayCount) // 3
如何使用此数据更新我的第一个代码?
答案 0 :(得分:0)
在关闭body-tag之前添加到您的视图中:
<script type="text/javascript">
// our model data
var data = @Html.Raw(JsonConvert.SerializeObject(Model));
// start knockout
var model = ko.mapping.fromJS(data);
ko.applyBindings(model);
</script>
然后你可以使用你的模型与knockout迭代每个项目:
<div data-bind="foreach: Items">
...
</div>
确保通过包管理器添加对NewtonSoft.Json的引用:
PM> install-package Newtonsoft.Json