0
Im卡住了另一個MVC/Knockout問題..MVC敲除字典綁定
這次它與一個序列化/字典集合有關。
我有以下視圖模型
public class ListViewModel
{
public Dictionary<ItemViewModel, List<ItemViewModel>> Events { get; set; }
public ListViewModel()
{
Events = new Dictionary<ItemViewModel, List<ItemViewModel>>();
}
}
public class ItemViewModel
{
public int Id { get; set; }
public string Name { get; set; }
}
和CSHTML文件:
<h2>Events</h2>
<div data-bind="template: { name: 'events-template', foreach: Events }"></div>
<script type="text/html" id="events-template">
<ul>
<li>
<div><span data-bind='text: Events().length'/></div>
<ul data-bind="foreach: Events">
<li><span data-bind="text: $data"> </span></li>
</ul>
</li>
</ul>
</script>
<script type="text/javascript">
var ListViewModel = function(model) {
var self = this;
self.Events = ko.observableArray(ko.utils.arrayMap(model.Events, function(itemViewModel) {
var item = new ItemViewModel(itemViewModel);
return item;
}));
};
var ItemViewModel = function(itemViewModel) {
var self = this;
self.Name = ko.observable(itemViewModel.name);
self.Id = ko.observable(itemViewModel.Id);
};
$(function() {
var data = @(Html.Raw(Json.Encode(Model)));
ko.applyBindings(new ListViewModel(data));
});
</script>
它似乎被卡住的VAR數據= @(Html.Raw(Json.Encode(型號)));
錯誤消息提到像「類型通用字典...不支持字典的序列化/反序列化,鍵必須是字符串或對象。」
我仍然有同樣的問題..我連載我的字典和我返回一個JSON字符串,但它顯示了一個類型的錯誤:遺漏的類型錯誤:不能使用「在」運營商{ – user1484089
所以搜索「長度」如果現在錯誤在客戶端網站上,則創建一個將顯示錯誤的小提琴。 –
我不能讓jsfiddle工作..但我有這樣的東西:http://jsfiddle.net/valkesh/AH2pK/8/ ..從MVC檢索的數據是在變量數據,我想在模板中顯示鍵/值 – user1484089