无法在模型列表上使用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);
...
}
答
这是因为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
}
@ BG101 我也尝试过使用之前。但是我必须将模型[i] .DataName放入Html.Raw中,我当然不能这样做。 var model = Html.Raw(Json.Encode(Model)); – tpa
@Dane Santiago 我也不能使用foreach。如果我这样做,我不能使用该范围外定义的数组,或不能在该范围内定义数组。 – tpa
因为'model'现在是一个javascript对象,所以你不需要'模型[i] .DataName'周围的'Html.Raw'。 – BenG