我使用的是MVC 4和Razor View Engine。
我有一个Html.ActionLink("Title", "Action")
调用,在foreach循环中调用约200个项目,这需要大约550ms才能完成。如果我用一个简单的字符串替换ActionLink,它只需要~50ms - > Html.ActionLink需要大约500毫秒进行200次迭代!
有没有办法加快速度?
我的循环中有5个,所以我的页面需要> 3s来渲染...
发布版本并且web.config中没有调试属性也无济于事。
答案 0 :(得分:4)
我结合了评论中的一些提示,以便在整个页面的渲染中从~3s减少到~250ms。最大的变化在哪里:
@{ var link = Html.ActionLink("_USER_", "Edit", new { id = "_ID_" }); }
之类的循环中做了@link.Replace("_ID_", user.UserId.ToString())
(你不能使用String.Format,因为Html.ActionLink()
将{0}
转义为%7B0%7D
}}