在我的控制器Index()方法中,我在将内容返回到视图之前从数据库中检索一些数据:
[HttpGet]
public ViewResult Index()
{
var model = new ItemsModel();
model.Items = itemService.GetSomeItems(User.RoleId);
return View(model);
}
这总是在Chrome和Firefox上完美运行,但IE 11只能根据GetSomeItems方法返回的内容工作。
当获取的项目不多时,IE返回视图没问题。但是,如果有,例如,返回了300个项目(调用大约需要4秒),IE会在显示“此页面无法显示”页面之前等待大约5-8秒。
结果因服务方法中返回的内容而异 - 尽管我不确定这是项目的数量,内容还是通话时间。
当我调试应用程序时,它运行顺利,没有异常,只是结束了“此页面无法显示”页面。这不是我的缓存导致问题,因为其他用户只遇到与IE完全相同的问题。我已经尝试将调试点放在Index.cshtml的jquery $(document).ready方法中,但是从未达到这些。
IE可能导致这种情况的原因是什么?我知道有内置超时(browser timeouts while asp.net application keeps running),但是4秒的通话并不能解释上述情况。有任何想法吗?调用后面的访问者使用实体框架,如果这可能是罪魁祸首。使用F12对其他IE版本进行了测试,但IE 11,10,9也失败了。
答案 0 :(得分:1)
当网页上包含太多AntiForgeryTokens时,IE崩溃会导致此问题。
当GetSomeItems()返回超过236个对象时,这些对象在视图中循环并导致~240 @ Html.AntiForgeryToken()行 - IE无法应对。