【发布时间】:2012-08-10 10:49:14
【问题描述】:
我有一个相当简单的 ASP.MVC 视图的性能问题。
这是一个应该几乎是即时的登录页面,但大约需要半秒钟。
经过大量挖掘后,问题似乎在于第一次调用 Url.Action - 大约需要 450 毫秒(根据 MiniProfiler),但这似乎非常慢。
对Url.Action 的后续调用耗时
无论我使用Url.Action("action", "controller") 还是Url.Action("action"),这都是一致的,但如果我使用Url.Content("~/controller/action"),这似乎不会发生。当我拨打Html.BeginForm("action") 时也会发生这种情况。
有人知道是什么原因造成的吗?
对source 的深入研究表明RouteCollection.GetVirtualPath 可能是罪魁祸首,因为Url.Action 和Html.BeginForm 都有这种情况。但是,肯定到处都在使用它吗?我的意思是,½ 秒太慢了。
我有 20 条左右的自定义路由(这是一个相当大的应用程序,带有一些旧版 WebForms 页面),但即便如此,时间似乎也太慢了。
有什么解决办法吗?
【问题讨论】:
标签: asp.net-mvc performance urlhelper route-constraint