Динамически генерируемый HTML в C # для форматирования - PullRequest
0 голосов
/ 01 ноября 2010

У меня есть сайт веб-форм ASP.NET с довольно большим меню.HTML-код для меню динамически генерируется с помощью метода в C # в виде строки.То есть то, что возвращается, выглядит примерно так:

<ul><li><a href='default.aspx?param=1&anotherparam=2'>LINK</a></li></ul>

За исключением того, что оно намного больше, а списки вложены до 4 глубин.

Это записывается на страницу черезблок кода.

Однако вместо того, чтобы возвращать плоскую строку из метода, я хотел бы вернуть ее как отформатированный HTML, поэтому при визуализации это выглядит так:

<ul>
    <li>
        <a href='default.aspx?param=1&anotherparam=2'>LINK</a>
    </li>
</ul>

Я думало загрузке html в XmlDocument, но ему не нравится символ &, найденный в строках запроса (в значениях атрибута href).

Основная причина для этого состоит в том, чтобы мне было легче отлаживать сгенерированныйHTML в процессе разработки.

У кого-нибудь есть идеи?

Ответы [ 4 ]

3 голосов
/ 01 ноября 2010

Может быть, вы можете работать с HtmlTextWriter?У него есть функции отступа, и он может быть более чистым, поскольку вы можете записывать прямо в выходной поток, который должен быть более «в потоке», чем генерирование строки в памяти и т. Д.

1 голос
/ 01 ноября 2010

Есть ли причина, по которой вы хотите это сделать? Этот неявно уменьшенный HTML все равно будет работать немного лучше. Если вам все еще нужно визуализировать HTML-код для удобного отображения, вам нужно будет либо включить отступ в логику, которая генерирует выходной HTML-код, либо создать свой контент с использованием элементов управления ASP.NET, а затем вызвать Render ().

0 голосов
/ 01 ноября 2010

Мне нравится использовать строки формата для такого рода вещей, ваш вывод HTML будет сгенерирован с помощью

String.Format("<ul>{0}\t<li>{0}\t\t<a href='{2}'>{3}</a>{0}\t</li>{0}</ul>",
               System.Environment.NewLine,
               myHrefVariable,
               myLinkText);
0 голосов
/ 01 ноября 2010

Попробуйте загрузить HTML в HTML Agilty Pack . Это HTML-синтаксический анализатор, который может работать с фрагментами HTML (и будет работать с & в URL).

Я не уверен, что он может выводить довольно напечатанный (то, что вы называете «отформатированным») HTML, но это был бы мой первый подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...