Javascript在MVC视图中使用for循环创建动态数组
我有一个来自控制器的状态列表,名为statusListJavascript在MVC视图中使用for循环创建动态数组,javascript,Javascript,我有一个来自控制器的状态列表,名为statusList @{ var statusList = @Html.Raw(Json.Encode(Model.Statuses)); } 我想像下面那样解析它。我在javascript中使用的数组如下: var options = { '0': '', '1': 'Pending', '2': 'In Progress', '3': 'Done' }; 当我写这个硬编码的测试,它的工作意图。但当我尝试像这样在
@{
var statusList = @Html.Raw(Json.Encode(Model.Statuses));
}
我想像下面那样解析它。我在javascript中使用的数组如下:
var options = {
'0': '',
'1': 'Pending',
'2': 'In Progress',
'3': 'Done'
};
当我写这个硬编码的测试,它的工作意图。但当我尝试像这样在for循环中填充它时:
var options = [];
for (var i = 0; i < statusList.length; i++) {
var id = statusList[i]["Id"];
var name = statusList[i]["Status"];
options.push({id : name});
}
var选项=[];
对于(变量i=0;i
这将写入[object object]以选择输入。我做错了什么?试试这样的方法。id和name是动态的,因此当您将其推送到数组时,必须将它们放在括号中。现在数组的使用方式如下:
[{id:name},{id:name}]
。您看到[Object Object]
的另一个原因是,为了查看其中的内容,您必须对结果进行字符串化
var options = [];
for (var i = 0; i < statusList.length; i++) {
var id = statusList[i].id;
var name = statusList[i].status;
options.push({[id] : [name]});
}
console.log(JSON.stringify(options))
var选项=[];
对于(变量i=0;i
像这样尝试var statusList=JsonSerializer.Serialize(Model.Statuses);