Как я могу заставить объект HtmlTextWriter использовать пробелы вместо вкладок для своих отступов? - PullRequest
0 голосов
/ 31 января 2009

Я создаю HTML-код из кода, работающего на WinForm. Я хочу создать следующий 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 в текстовом редакторе, мой отступ выглядит слишком далеко для меня, так как он использует символы табуляции. Есть ли способ заставить этот класс использовать несколько пробелов вместо этого?

Ответы [ 2 ]

3 голосов
/ 31 января 2009

Я не парень System.Web.UI, но из документации MSDN похоже, что вы можете предоставить символ для использования в качестве отступа в качестве второго аргумента для конструктора HtmlTextWriter. Таким образом, чтобы получить 4 пробела вместо табуляции:

System.Web.UI.HtmlTextWriter htmlWriter = 
    new System.Web.UI.HtmlTextWriter(yourTextWriter, "    ");
1 голос
/ 21 апреля 2011

Дэвид технически ответил на ваш вопрос, но этот путь ведет на темную сторону. Клиентский веб-код не компилируется. Если вместо символа табуляции вы используете четыре пробела, вы делаете это неправильно.

Даже если воздействие невелико, когда допустимо снижение эффективности на 400%? Если вы хотите сделать вещи чуть-чуть медленнее и без веской причины, вы также можете произвольно добавить вызовы Thread.Sleep () в код на стороне сервера.

Исправьте настройки вашего текстового редактора.

...