在ASP.Net MVC中使用布局页面时,每次调用新页面时都会加载布局?

时间:2015-08-16 18:40:50

标签: html asp.net-mvc razor asynchronous

我只是很想知道,因为我还在学习布局页面,如果我使用布局页面(例如SiteLayout.cshtml)并且有两个页面用它进行渲染(Index.cshtml,Results.cshtml )在@RenderBody()部分,每次我在Index.cshtml和Results.cshtml之间进行布局包装器部分的加载吗?或_layout.cshtml页面是否异步加载@Renderbody()部分?

仅举几个例子pics

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

除非您设置了甜甜圈缓存(http://weblogs.asp.net/scottgu/tip-trick-implement-donut-caching-with-the-asp-net-2-0-output-cache-substitution-feature),否则SiteLayout.cshtml将针对每个页面单独执行。

如果您的SiteLayout有一些长/昂贵的操作,并且您希望每次都加载它,您可以使用上述的圆环缓存让每个用户每X个时间执行一次。

如果你希望SiteLayout在主体完成执行/渲染之前开始向浏览器发送数据(即出于整体速度目的而异步),你可以使用名为CourtesyFlush(http://www.hanselman.com/blog/NuGetPackageOfTheWeekCourtesyFlushToFlushBuffersEarlierAndOptimizeTimeToFirstByte.aspx)的nuget包