2017-05-08 34 views
-1

我在剃刀视图内创建了一个表格。这个foreach循环运行3次,因为我有3个项目。但是在这个表中,每次只显示最后一行。始终只显示最后一行数据

$(document).ready(function() { 
    @foreach (var item in Model.NewsModel) 
    { 
    @:gTable = "<tr class=\"xl1\">"; 
    @:gTable += "<td>"; 
    @:gTable += "<input value=" + @item.NewsNo + " class=\"form-control\" />"; 
    @:gable += "</td>"; 
    @:gTable += "</tr>" 
    } 
    document.getElementById('newsTbl').innerHTML = gTable; 
}); 
+2

这是因为你的循环的第一行重新定义了'@:gTable'。你需要在循环之外定义它,并在其中使用'+ =' –

回答

1

每次运行循环时,它都会初始化gTable,然后添加到它。

完成所有循环后,您将元素的innerHTML设置为表格。

您的变量正在循环的每次迭代中重置。所以你可能想在循环之外初始化它,使其成为一个空字符串,并且在此之后总是使用+=

1

问题就在这里:

@:gTable = "<tr class=\"xl1\">"; 

在每次迭代@:gTable失去了所有的数据和重新初始化。因此,使用+=将其声明在循环的一侧并在每次迭代中连接新值。