我正在尝试使用一些技术来优化我的 ASP.NET MVC 应用程序,其中包括 URL 生成调整: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 技术更好,但我只是想知道为了速度是否应该完全避免匿名类。
最佳答案
是的,使用词典更快。
它的速度是否足以产生影响?对于您的应用程序,只有分析器才能告诉您这一点。我建议,如果它确实产生了影响,那么您无论如何都应该缓存您的 View 结果。
不过,我倾向于坚持使用词典版本,因为强类型有助于切入 insane mess of overloads to ActionLink
。传递对象
很容易导致错误的重载。速度只是一个额外的好处。
关于asp.net-mvc - ASP.NET MVC 中 htmlAttributes 的匿名类和 IDictionary<string,object> 之间的速度差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2283519/