gpt4 book ai didi

asp.net-mvc - 使用布局时在 Razor View 和部分前面添加/附加注释 (ASP.NET MVC 4)

转载 作者:行者123 更新时间:2023-12-04 02:44:13 24 4
gpt4 key购买 nike

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

我想知道是否有任何人都能想到或已经成功使用的干净方法。如果重要的话,我正在使用自定义 View 基类型,因此可以覆盖任何相关方法,并且我愿意覆盖 View 引擎。

我目前看到的:

<!-- start of 'layout1' -->entire html response<!-- end of 'layout1' -->

我最想看到的:

<!-- start of 'layout1' --><html>  <body>    <!-- start of 'layout2' section 'section1' -->      <div id="header">        <!-- start of 'view1' section 'section2' -->          <h1>hello!</h1>        <!-- end of 'view1' section 'section2' -->      </div>    <!-- end of 'layout2' section 'section1' -->  </body></html><!-- end of 'layout1' -->

最佳答案

如果我没听错,您只需要在每个 View 的开头和结尾添加这些评论?如果您的自定义 View 基础是从 WebViewPage 继承的,那将非常简单。

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

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

关于asp.net-mvc - 使用布局时在 Razor View 和部分前面添加/附加注释 (ASP.NET MVC 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19188985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com