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

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

我正在尝试使用一些技术来优化我的 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/

相关文章:

c# - ASP.NET Identity自动注册Claims用户

html - 固定页眉与页内 anchor 重叠

java - JAR 中资源的 URL

java - 返回空 inputStream 的 URLConnection

javascript - 在 ASP.NET MVC 中填充下拉列表的正确方法

asp.net-mvc - 使用预编译网站运行自定义 VirtualPathProvider

java - 如何使用匿名类从 Jcombobox 数组中获取值

java - 为什么我不能调用同名匿名类之外的方法

java - 为什么此代码对 final 修饰符产生 false?

jquery - 如何使用 mvc 中的表单发布方法从 Controller 操作打开弹出窗口