我正在尝试尽可能优化我的代码。我使用了很多这样的部分文件:
@if (Model.PageMeta.Sidebar == PageMetaSidebar.Small) { Html.RenderPartial("_SmallSidebar"); }
..
..
..
有人可以告诉我这是否会带来性能开销。据我所知,Razor View 是经过编译的。当页面显示时,是否会读取另一个磁盘以获取我使用的每个部分文件的数据。如果是这种情况,那么我的布局页面上有 5 个 RenderPartials 会带来多少额外开销。
最佳答案
这里不会有明显的性能影响,因为在将生成的 HTML 流回浏览器之前,部分内容只是被拉入 asp.net Web 服务器。这并不是一个昂贵的磁盘读取操作,并且不会比单个 cshtml 慢。显然,如果在许多 View 中重复使用相同的局部 View ,则应该使用局部 View 。如果仅在单个 View 中使用,那么只是为了清楚起见,将其拆分为单独的部分,以将模型的各个部分分成不同的 View 。
请注意,您也可以只使用:
@Html.Partial("YourPartial")
而不是使用RenderPartial
。这将在本地 View 文件夹中查找,如果找不到,则在共享文件夹中查找。
关于asp.net-mvc - 在 MVC3 页面中包含 RenderPartial 的开销是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6875070/