检查RenderPartial执行之前/之后的条件
本文关键字:之后 条件 RenderPartial 执行 检查 | 更新日期: 2023-09-27 18:12:16
假设有一个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
RenderPartial()
是一个void方法,用于写入响应输出流。通过执行部分视图生成的HTML输出被呈现到调用视图(或父视图)中。即使模型是null
,写也会很耗时,降低效率。因此,在RenderPartial
之前检查条件在性能方面更好。
我会说检查之前的RenderPartial调用是更好的。即使您的Partial视图很小,它仍然需要从Web服务器对.cshtml文件进行额外的文件系统IO调用,这是性能的瓶颈。当你先检查时,你可以避免所有的IO调用。