如何让HtmlTextWriter对象为其缩进使用空格而不是制表符?

时间:2009-01-31 03:06:18

标签: c# html .net htmltextwriter

我正在从WinForm上运行的代码创建一些html。我想创建以下html:

<html>
<body>
    <div>
        <p>foo</p>
    </div>
</body>
</html>

我正在使用System.Web.UI.HtmlTextWriter类来执行此操作:

System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter();
htmlWriter.WriteFullBeginTag("html");
htmlWriter.WriteLine();
htmlWriter.WriteFullBeginTag("body");
htmlWriter.WriteLine();
htmlWriter.Indent++;
htmlWriter.WriteFullBeginTag("div");
htmlWriter.WriteLine();
htmlWriter.Indent++;
htmlWriter.WriteFullBeginTag("p");
htmlWriter.Write("foo");
htmlWriter.WriteEndTag("p");
htmlWriter.Indent--;
htmlWriter.WriteLine();
htmlWriter.WriteEndTag("div");    
htmlWriter.Indent--;
htmlWriter.WriteLine();
htmlWriter.WriteEndTag("body");
htmlWriter.WriteLine();
htmlWriter.WriteEndTag("html");

这很好用,但是,当我在文本编辑器中打开生成的html时,我的缩进对我来说太过分了,因为它使用了tab chars。有没有办法强制这个类改为使用多个空格?

2 个答案:

答案 0 :(得分:3)

我不是System.Web.UI的人,但是从MSDN documentation,看起来你可以提供用于缩进的字符作为HtmlTextWriter构造函数的第二个参数。因此,要获得4个空格而不是标签:

System.Web.UI.HtmlTextWriter htmlWriter = 
    new System.Web.UI.HtmlTextWriter(yourTextWriter, "    ");

答案 1 :(得分:1)

大卫在技术上回答了你的问题,但这条道路导致了黑暗的一面。客户端Web代码未编译。如果您使用四个空格而不是制表符,那么您做错了。

即使影响很小,什么时候可以接受效率低400%?如果你想让事情变得有点慢,你也可以随机地将Thread.Sleep()调用添加到你的服务器端代码。

修复文本编辑器的设置。