无法在模型列表上使用for循环

无法在模型列表上使用for循环

问题描述:

在我看来,cshtml文件我有一个脚本部分。无法在模型列表上使用for循环

在这个视图上有一个模型列表,我想通过该模型列表中的项目遍历JavaScript function但我无法使用for循环来迭代列表。

它说“名称i在当前的情况下不存在”。

如果我写@Html.Raw(Model[0].DataName);它工作正常,并countModel来正确。我如何在for循环中使用它?

下面是代码:

var countModel = @(Model.Count); 

for (var i = 0; i < countModel; i++) { 
    var dt = @Html.Raw(Model[i].DataName); 
    ... 
} 
+0

@ BG101 我也尝试过使用之前。但是我必须将模型[i] .DataName放入Html.Raw中,我当然不能这样做。 var model = Html.Raw(Json.Encode(Model)); – tpa

+0

@Dane Santiago 我也不能使用foreach。如果我这样做,我不能使用该范围外定义的数组,或不能在该范围内定义数组。 – tpa

+0

因为'model'现在是一个javascript对象,所以你不需要'模型[i] .DataName'周围的'Html.Raw'。 – BenG

这是因为i是JavaScript的一个变量,在那里你想在C#中使用它。

你需要将你的Model转换成一个Javascript对象,然后遍历它。

var model = @Html.Raw(Json.Encode(Model)); 

for (var i = 0; i < model.length; i++) 
{ 
    var dt = model[i].DataName; 

您应该能够利用Model.Count,而不必通过使用foreach循环将其分配给变量计数模型。应该看起来像这样。

@foreach (var item in Model.Count) 
{ 
//You Code Here 
}