2

我正在尝试使用一些技术优化我的 ASP.NET MVC 应用程序,包括 URL 生成调整 la: http: //www.chadmoran.com/blog/2009/4/23/optimizing-url-generation-in-aspnet- mvc-part-2.html

如果使用 RouteValueDictionary 代替匿名类之间的速度差异如此之大,那么在定义 html 属性时,我是否也应该使用 Dictionary 代替匿名类?

例如,我应该这样做:

Html.ActionLink("LinkName", "Action", "Controller",
                new RouteValueDictionary { { "id", Model.Id } },
                new { @class = "someCSSClass" })

或者我应该通过这样做进一步优化:

Html.ActionLink("LinkName", "Action", "Controller",
                new RouteValueDictionary { { "id", Model.Id } },
                new Dictionary<string, object> { { "class", "someCSSClass" } })

我知道使用 Url.Action 甚至更快,或者使用 RouteLink 技术更好,但我只是想知道是否应该为了速度而完全避免匿名类。

4

1 回答 1

5

是的,使用字典更快。

它是否足够快以产生影响?对于您的应用程序,只有探查器可以告诉您。我建议,如果它确实有所作为,那么无论如何你都应该缓存你的视图结果。

不过,我倾向于坚持使用 Dictionary 版本,因为强类型有助于消除重载到ActionLink. 传递 anobject很容易导致错误的重载速度只是一个奖励。

于 2010-02-17T19:00:16.633 回答