代码之家  ›  专栏  ›  技术社区  ›  Chris F

ASP.NET MVC中htmlattributes的匿名类和idictionary<string,object>之间的速度差

  •  2
  • Chris F  · 技术社区  · 16 年前

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

    1 回复  |  直到 16 年前
        1
  •  5
  •   Craig Stuntz    16 年前

    是的,用字典更快。

    速度够快吗?只有一个探查器可以告诉你, 为您的申请 . 我建议,如果它确实起到了作用,那么无论如何,您应该缓存视图结果。

    不过,我倾向于使用字典的版本,因为强大的打字有助于突破 insane mess of overloads to ActionLink . 路过 object 使它 方式 太容易导致错误的过载。速度只是一个奖励。