我们假设RenderPartial
检查某个条件是否为真,然后呈现该页面。
首先检查条件是否有任何性能优势,然后致电RenderPartial
?我确信这种技术对于RenderAction
是一种性能优势,因为我们可以基本上通过MVC生命周期步骤进行短路。但是我在想RenderPartial
"去"直截了当地说,它可能没有同样的好处。
示例(检查RenderPartial中的条件):
myPage.cshtml
@model Namespace.AdObject
@{ Html.RenderPartial("~/Views/Ad.cshtml", Model); }
〜/查看/ Ad.cshtml
@model Namespace.AdObject
@if (Model != null && Model.AdScript != null)
{
// render the ad
}
示例(检查RenderPartial之前的条件):
myPage.cshtml
@model Namespace.AdObject
@if (Model != null && Model.AdScript != null)
{
Html.RenderPartial("~/Views/Ad.cshtml", Model);
}
〜/查看/ Ad.cshtml
@model Namespace.AdObject
// render the ad
答案 0 :(得分:1)
RenderPartial()
是一个写入响应输出流的void方法。
通过执行局部视图生成的HTML输出将呈现到调用(或父)视图中。即使模型为null
,写入也会耗费时间并降低效率。因此,在RenderPartial
之前检查条件在性能方面更好。
答案 1 :(得分:0)
我想说在RenderPartial调用之前检查更好。即使您的部分视图很小,它仍然归结为从Web服务器对.cshtml文件的额外文件系统IO调用,这是性能的瓶颈。首先检查时,可以一起避免IO调用。