MVC Razor在foreach循环的每次迭代中呈现HTML

时间:2013-11-09 05:02:51

标签: asp.net-mvc asp.net-mvc-4 razor foreach html-helper

我使用foreach循环呈现HTML,如下所示:

@foreach (var item in list)
 {
     // some html
 }

但似乎它在开始呈现HTML之前迭代整个循环。我想逐个显示(渲染)html(即如果循环迭代100次,那么它应该逐个渲染/显示HTML到100)。

注意:为了验证它在循环结束时开始呈现HTML,我确实在循环中放置了thread.sleep(100)

@foreach (var item in list)
     {
         Thread.Sleep(100);
         // some html
     }

如果10 mseconds开始呈现没有sleep的HTML,那么在放置thread.sleep之后,在开始呈现HTML之前需要1000 mseconds

关于我应该做什么的任何建议,以便在循环完成之前UI不会被冻结?它应该在每次迭代完成时呈现HTML。谢谢。

1 个答案:

答案 0 :(得分:1)

如果您在Razor视图中执行此操作,则所有HTML都将在服务器上呈现 BEFORE 将其发送到客户端。

如果您想逐个呈现某些内容,则必须通过JavaScript在客户端上执行此操作。