Model view controller 淘汰Js字典显示MVC
我被一些我认为很基本的东西卡住了,因此我需要一些专业知识来帮助我完成这项任务 我有一个字典,它将整数和字符串作为值来存储结果列表(我将在下面展示)。我的视图模型和控制器有以下代码,将数据作为JSON字符串发布到敲除: [视图模型代码]Model view controller 淘汰Js字典显示MVC,model-view-controller,asp.net-mvc-4,knockout.js,knockout-2.0,knockout-mvc,Model View Controller,Asp.net Mvc 4,Knockout.js,Knockout 2.0,Knockout Mvc,我被一些我认为很基本的东西卡住了,因此我需要一些专业知识来帮助我完成这项任务 我有一个字典,它将整数和字符串作为值来存储结果列表(我将在下面展示)。我的视图模型和控制器有以下代码,将数据作为JSON字符串发布到敲除: [视图模型代码] public class ResultModel { public Dictionary<int, string> dictResult { get; set; } public string dictResultJson { get;
public class ResultModel
{
public Dictionary<int, string> dictResult { get; set; }
public string dictResultJson { get; set; }
public ResultModel()
{
dictResult = new Dictionary<int, string>();
}
}
公共类结果模型
{
公共字典dictResult{get;set;}
公共字符串dictResultJson{get;set;}
公共结果模型()
{
dictResult=新字典();
}
}
[cshtml文件的代码]
<h2>Results</h2>
<table>
<tbody data-bind="template: { name: 'tblResult', foreach: dictResultJson() }"></tbody>
</table>
<script id="tblResult" type="text/html">
<tr>
<td data-bind="value: key"></td>
<td data-bind="value: value"></td>
</tr>
</script>
<script type="text/javascript">
var ResultModel = function(m) {
var self = this;
self.dictResultJson = ko.observableArray(mapDictionaryToArray(m.DictJson));
};
function mapDictionaryToArray(dictionary) {
var result = [];
for (var key in dictionary) {
if (dictionary.hasOwnProperty(key)) {
result.push({ key: key, value: dictionary[key] });
}
}
return result;
}
var data = @(Html.Raw(Json.Encode(Model)));
var dataFromServer = ko.utils.parseJson(data.dictResultJson);
console.log(dataFromServer);
ko.applyBindings(new ResultModel(dataFromServer));
console.log("apply binding");
</script>
结果
var ResultModel=函数(m){
var self=这个;
self.dictResultJson=ko.observableArray(mapDictionaryToArray(m.DictJson));
};
函数映射字典数组(字典){
var结果=[];
for(字典中的var键){
if(dictionary.hasOwnProperty(key)){
push({key:key,value:dictionary[key]});
}
}
返回结果;
}
var data=@(Html.Raw(Json.Encode(Model));
var dataFromServer=ko.utils.parseJson(data.dictResultJson);
console.log(dataFromServer);
应用绑定(新的结果模型(dataFromServer));
console.log(“应用绑定”);
在我的cshtml文件中,我正在解析MVC控制器返回的对象,并将其转换为数组。现在的问题是它没有显示任何数据,但是变量dataFromServer包含正确的数据。它有以下数据:
对象{1:“凯特”,3:“亚历克斯”,4:“简”}
现在,我应该如何循环这个json结果以表格式显示它,比如
桌子
1凯特
3亚历克斯
简
提前谢谢
Jesmond如果要将表中的值显示为文本,则需要使用而不是
值
<tr>
<td data-bind="text: key"></td>
<td data-bind="text: value"></td>
</tr>
非常感谢,非常有意义!在我看来,最好在服务器端实现“mapDictionaryToArray”。编译后的代码运行得更快,对吗?
var ResultModel = function(m) {
var self = this;
self.dictResultJson = ko.observableArray(mapDictionaryToArray(m));
};