ASP.NET MVC中htmlAttributes的匿名类和IDictionary <string,object>之间的速度差异</string,object>

时间:2010-02-17 18:55:38

标签: asp.net-mvc url anonymous-class html

我正在尝试使用包含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技术,但我只是想知道为了速度,是否应该完全避免使用匿名类。

1 个答案:

答案 0 :(得分:5)

是的,使用字典会更快。

它是否足以快速发挥作用?只有分析器可以告诉您,适用于您的应用程序。我建议如果它实际上有所不同,那么无论如何你都应该缓存你的观察结果。

我倾向于坚持使用词典版本,因为强类型有助于切断insane mess of overloads to ActionLink。传递object会使方式太容易导致错误的重载。速度只是一个奖励。