3

我的剃刀视图存储在数据库中,并通过 VirtualPathProvider 提供给站点。给定某些标志,返回它们的服务将出于调试目的,使用 HTML 注释划分每个视图的开头和结尾,包括额外的调试信息(缓存、版本控制、作者身份等)。当使用布局时,只有最外层的布局视图会包括这些信息;在子布局/视图中,包含信息的 HTML 注释不在 @section 中,因此永远不要出现在响应中。我希望这些评论至少出现在第一个渲染部分之前,但在每个渲染部分之前和之后都会很棒。

我想知道是否有一种干净的方法可以做到这一点,任何人都可以想到或已经取得了成功。如果重要的话,我使用的是自定义视图基类型,因此可以覆盖任何相关方法,并且我愿意覆盖视图引擎。

我目前看到的:

<!-- 'layout1' 的开始 -->
整个 html 响应
<!-- 'layout1' 结束 -->

我最想看到的:

<!-- 'layout1' 的开始 -->
<html>
  <正文>
    <!-- 'layout2' 部分 'section1' 的开始 -->
      <div id="header">
        <!-- 'view1' 部分 'section2' 的开始 -->
          <h1>你好!</h1>
        <!-- 'view1' 部分 'section2' 结束 -->
      </div>
    <!-- 'layout2' 部分 'section1' 结束 -->
  </正文>
</html>
<!-- 'layout1' 结束 -->
4

2 回答 2

2

如果我没有正确地关注你,你只需要在每个视图的开头和结尾添加这些评论吗?如果您的自定义视图库继承自 WebViewPage,这非常简单。

public class MyViewBase<T> : WebViewPage<T> 
{
    public override void ExecutePageHierarchy()
    {
        WriteLiteral("<!-- Started Layout -->");
        base.ExecutePageHierarchy();
        WriteLiteral("<!-- Ended Layout -->");
    }
}

请注意,如果您有各种编辑器或显示模板都使用相同的自定义基类,这会有点吵。

于 2013-10-11T17:41:15.340 回答