ASP MVC编译时包括局部视图

我有两个不同的视图,每个视图调用500个局部视图调用。 好的设计告诉我,我应该保留部分视图,并从两个覆盖视图引用它,以防止代码重复。 不幸的是,性能受到影响 – 在其他两个视图中复制粘贴部分视图会产生300毫秒的改进。

反正我是否可以在上层视图中包含局部视图,获得不使用实际的Partial()调用的性能优势,同时不必维护重复的代码? 注意 – 我意识到我可以编写某种VS附加组件来复制粘贴视图代码,但我正在寻找其他选项……

可以尝试提高性能的方法:

  • 使用@{Html.RenderPartial("_foo");}代替@Html.Partial("_foo")来包含部分
  • 始终在发布模式下进行基准测试。 与调试模式相比,ASP.NET MVC执行了大量优化和缓存。

如果前两个建议没有产生所需的性能,那么您可以尝试使用将生成HTML片段的自定义HTML帮助程序替换partial。 如果部分的HTML不是很复杂,这可能会有效。

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