ASP MVC编译时包含部分视图

本文关键字:视图 包含部 MVC 编译 ASP | 更新日期: 2023-09-27 18:20:48

我有两个不同的视图,每个视图对一个公共局部视图进行500多次局部视图调用。好的设计告诉我应该将局部视图留在它所在的位置,并从两个重叠的视图中引用它,以防止代码重复。不幸的是,性能会受到影响——在其他两个视图中复制粘贴部分视图会提高300ms。

我是否可以在覆盖视图中包含一个局部视图,从而获得不使用实际partial()调用的性能优势,同时不必维护重复的代码?注意-我意识到我可以编写某种VS插件,复制粘贴视图代码,但我正在寻找其他选项。。。

ASP MVC编译时包含部分视图

可以提高性能的尝试:

  • 使用@{Html.RenderPartial("_foo");}而不是@Html.Partial("_foo")来包括
  • 始终在发布模式下进行基准测试。与调试模式相比,许多优化和缓存都是由ASP.NET MVC执行的

如果前面的2个建议没有产生所需的性能,那么您可以尝试用一个自定义的HTML助手来替换部分,该助手将生成HTML片段。如果分部的HTML不是很复杂,这可能会起作用。

我将在这里自我介绍,但您是否考虑过使用服务器端include来注入部分视图的代码,而不是调用它?我绝对没有证据,无论是经验还是主观的,表明这会更快。只是一些值得尝试的东西。