首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在asp.net中呈现之前删除html注释标记

如何在asp.net中呈现之前删除html注释标记
EN

Stack Overflow用户
提问于 2010-01-19 02:17:13
回答 3查看 2.2K关注 0票数 1

我正在使用一些组件。当页面呈现时,组件生成html注释标记。如果我在一个页面上使用这个组件10次,html注释会插入10次。

如何在渲染页面前移除html评论标签?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-19 05:47:00

基于第三方程序集创建自定义服务器控件,如下所示:

代码语言:javascript
复制
namespace ServerControls
{
    [ToolboxData("<{0}:LabelWithComment runat=server></{0}:LabelWithComment>")]
    public class LabelWithComment : Label
    {
        protected override void Render(HtmlTextWriter output)
        {
            var htmlFromBaseClass = new StringBuilder();
            var htmlTextWriterForBaseClass = 
                new HtmlTextWriter(new StringWriter(htmlFromBaseClass));
            base.Render(htmlTextWriterForBaseClass);
            var modifiedHtml = ModifyHtmlUsing(htmlFromBaseClass);
            output.Write(modifiedHtml);
        }

        private static string ModifyHtmlUsing(StringBuilder stringBuilder)
        {
            stringBuilder.Replace("<!-- some comment -->", "");
            return stringBuilder.ToString();
        }
    }
}

然后定制ModifyHtmlUsing方法来替换您想要的任何东西。

然后在使用该控件的页面上包含以下指令:

代码语言:javascript
复制
<%@ Register Assembly="ServerControls" Namespace="ServerControls" TagPrefix="Custom"  %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <Custom:LabelWithComment ID="lblLabelWithComments" 
        Text="Some Text <!-- some comment -->" runat="server" />
    </div>
    </form>
</body>
</html>
票数 1
EN

Stack Overflow用户

发布于 2010-01-19 02:21:01

使用服务器端注释:

代码语言:javascript
复制
<%--
    Commented out HTML/CODE/Markup.  Anything with
    this block will not be parsed/handled by ASP.NET.

    <asp:Calendar runat="server"></asp:Calendar> 

   <%# Eval(“SomeProperty”) %>     
--%>

或者仅在调试模式下呈现注释

代码语言:javascript
复制
#if DEBUG
// Add my comment for debug only
#endif
票数 2
EN

Stack Overflow用户

发布于 2010-01-19 02:29:10

哪种组件?假设它是一个呈现HTML注释的自定义服务器控件。每个服务器控件控制其向浏览器呈现内容的过程。因此HTML注释将由该控件呈现,并直接呈现给浏览器。例如,它将如下所示:http://msdn.microsoft.com/en-us/library/aa338806%28VS.71%29.aspx您可以创建自己的类,该类继承自此组件并更改呈现过程,但效率很低。

你可以使用javascript来做这件事,但是我不得不问为什么这些评论是一个问题?当您的应用程序在发布模式下构建时,THey可能无法呈现给浏览器...

HTH。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2088193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档