Как мне заставить этот HTML отображаться в форматированном виде без тегов?

Я создал блог (для практики кодирования). Я использую Rich Text Editor (ckeditor) и сохраняю сообщение в базе данных. Когда я вытаскиваю пост для отображения в Label.Text, он показывает все теги HTML:

<p><strong>there was</strong> once a fox that lived</p>
<p> in the<span style="color: #ff0000"> woods</span></p>

Как сделать так, чтобы сообщение отображалось с правильным форматированием (абзац, цвет и т. д.), но без HTML-тегов?


person nanonerd    schedule 29.10.2011    source источник
comment
Пожалуйста, убедитесь, что ваш вывод не заполнен &gt; и &lt;   -  person Justin808    schedule 30.10.2011
comment
Justin808: Привет, страница показывает/отображает теги HTML буквально в соответствии с моим исходным сообщением. Но когда я смотрю на исходный код, все ‹› заменяются на > и <. Как заставить браузер читать теги HTML вместо использования > и игнорирования тегов?   -  person nanonerd    schedule 30.10.2011
comment
nanonerd: См. ответ от ChrisF ниже. Вам нужно использовать asp:Literal, а не asp:Label.   -  person Justin808    schedule 30.10.2011


Ответы (3)


К вашему сведению: литерал дал тот же результат, что и метка ... но я получил свой ответ, это работает:

string strHTML = "<p>Hello World!</p>";
Label.Text = Server.HtmlDecode(strHTML);
person nanonerd    schedule 31.10.2011

Что ж, HTML это форматирование, поэтому, чтобы текст отображался так, как вы хотите, вам нужно вставить текст как HTML на свою страницу, а не вставлять текст в метку. .Text, который будет обрабатываться как обычный текст и отображать всю разметку.

Поэтому вместо создания метки используйте литерал:

<asp:Literal runat="server" ID="EditorOutput">

Затем на вашей странице загрузите:

protected void Page_Load(object sender, EventArgs e)
{
    EditorOutput.Text = theText;
}

theText будет строкой:

<p><strong>there was</strong> once a fox that lived</p> <p> in the<span style="color: #ff0000"> woods</span></p>

как прочитано из вашей базы данных.

Если ваша строка была закодирована, вам придется вызвать Server.HtmlDecode, чтобы убедиться, что любые коды &lt; и &gt; преобразуются обратно в <. и >.

Источник

person ChrisF    schedule 29.10.2011

Я не понял. Вы имеете в виду, что когда вы проверяете пост, вы получаете что-то вроде:

<b>there was</b> once a fox that lived...

Вероятно, было бы неплохо сохранить его в формате .html, поскольку RTF никогда не предназначались для Интернета. Это также звучит так, как будто вам вообще не нужно использовать базу данных. XML лучше подходит для такого рода задач.

person Community    schedule 29.10.2011
comment
Он не использует расширенный текстовый формат, он использует расширенный текстовый редактор (т. е. редактор WYSIWYG) для создания HTML-разметки. Что касается отказа от использования базы данных в пользу файлов XML: ЧТО? - person Isochronous; 26.07.2016