【问题标题】:When using a layout page in ASP.Net MVC is the layout loading every time a new page is called?在 ASP.Net MVC 中使用布局页面时,每次调用新页面时都会加载布局吗?
【发布时间】:2015-08-17 02:46:03
【问题描述】:

我只是想知道,因为我还在学习布局页面,如果我使用布局页面(例如 SiteLayout.cshtml)并使用它渲染两个页面(Index.cshtml、Results.cshtml ) 在@RenderBody() 部分中,每次我在Index.cshtml 和Results.cshtml 之间切换时,布局包装器部分是否会被加载?还是_layout.cshtml页面异步加载@Renderbody()部分?

只是提供一些示例图片

【问题讨论】:

    标签: html asp.net-mvc razor asynchronous


    【解决方案1】:

    除非您设置了甜甜圈缓存 (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 包

    【讨论】:

      猜你喜欢
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      相关资源
      最近更新 更多