Html.ActionLink非常慢

Chr*_*Fin 5 c# asp.net-mvc razor asp.net-mvc-4

我正在使用MVC 4和Razor View Engine.

我有一个Html.ActionLink("Title", "Action")调用,在foreach循环中调用约200个项目,这需要大约550ms来完成.如果我用一个简单的字符串替换ActionLink它只需要大约50ms - > Html.ActionLink需要〜500ms进行200次迭代!

有没有办法加快速度?

我的循环中有5个这样,所以我的页面需要> 3s来渲染...
在web.config中发布版本和没有调试属性没有帮助.

Chr*_*Fin 5

我结合了评论中的一些技巧,将整个页面的渲染时间从约 3 秒减少到约 250 毫秒。最大的变化在于:

  • 缓存来自我的自定义路由的数据库查询(-> 每次调用节省 2/3 时间)
  • “预生成”链接并仅替换其中的一部分:
    我在@{ var link = Html.ActionLink("_USER_", "Edit", new { id = "_ID_" }); }foreach 循环之前和循环中做了类似的操作@link.Replace("_ID_", user.UserId.ToString())(您不能使用 String.Format,因为Html.ActionLink()转义{0}%7B0%7D