【问题标题】:How can I make an HtmlTextWriter object use spaces instead of tabs for its Indents?如何使 HtmlTextWriter 对象使用空格而不是制表符作为其缩进?
【发布时间】:2010-10-04 15:08:11
【问题描述】:

我正在从 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 时,我的缩进看起来太远了,因为它使用的是制表符。有没有办法强制这个类使用多个空格?

【问题讨论】:

    标签: c# html .net htmltextwriter


    【解决方案1】:

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

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

    【讨论】:

    • 哇...我觉得自己像个呼吸器。谢谢!
    【解决方案2】:

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

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

    修复文本编辑器的设置。

    【讨论】:

      猜你喜欢
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多