我正在尝试使用包含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技术,但我只是想知道为了速度,是否应该完全避免使用匿名类。
答案 0 :(得分:5)
是的,使用字典会更快。
它是否足以快速发挥作用?只有分析器可以告诉您,适用于您的应用程序。我建议如果它实际上有所不同,那么无论如何你都应该缓存你的观察结果。
我倾向于坚持使用词典版本,因为强类型有助于切断insane mess of overloads to ActionLink
。传递object
会使方式太容易导致错误的重载。速度只是一个奖励。