Chrome在MVC视图中循环期间无响应

时间:2015-01-22 10:08:13

标签: asp.net-mvc vb.net google-chrome

我有一个视图,只是在我的模型中使用列表中的对象填充页面,但在此过程中,Google Chrome变得没有响应,并询问我们是否要删除页面。这有点令人沮丧,因为IE和FF都可以正常工作(即时加载)而且我不打算开始推荐用户使用IE作为短期解决方案(只是不能让自己去做)。

以下是页面死亡的示例。循环填充表中的行:

For i = 0 To Model.ListOfStuff.Count - 1
    @<tr>
        <td>@Html.LabelFor(Function(d) d.ListOfStuff(i).SelectedItem, Model.ListOfStuff(i).Name)</td>
    <td>
        @Html.CheckBoxFor(Function(c) c.ListOfStuff(i).SelectedItem)
        @Html.HiddenFor(Function(c) c.ListOfStuff(i).Id)
    </td>
</tr>

下一步

这包含不超过900条记录,所以我不确定为什么Chrome会因此而失败。

所以我的问题是,我如何优化这一点,以便Chrome不会摔倒?或者,是否有一项已知的解决方案让Chrome无法响应?我在这里抓着稻草。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果有人偶然发现并处于类似位置,这就是解决问题的方法。

问题是我在共享的_Layout.vbhtml视图中包含了jquery-1.7.1.js。出于某种原因,虽然没有主动调用jQuery,但如果它们包含包含相当多记录的循环,则会导致多个视图崩溃。

为了解决这个问题,我创建了一个名为“_LayoutNoScripts.vbhtml”的新共享布局视图(并删除了所有脚本)并将问题视图的布局设置为:

@Code
    Layout = "~/Views/Shared/_LayoutNoScripts.vbhtml"
@End Code

然后,因为视图中实际需要jQuery,所以我将脚本作为单独的引用包含在内:

<script src="@Url.Content("~/scripts/jquery-1.7.1.js")"></script>