Хранить и читать HTML в базе данных с ASP.NET MVC? - PullRequest
2 голосов
/ 22 октября 2010

Я хочу разрешить HTML в поле для комментариев (в конечном итоге использовать tinymce или что-то в этом роде), сохранить его в базе данных MSSQL, а затем прочитать его на странице, где поле отображается в ячейке таблицы.

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

        <td> 
            &lt;p&gt;Testing HTML&lt;/p&gt;&lt;p&gt;Hope it works&lt;/p&gt;
        </td> 

Так как мне отформатировать его как отформатированный текст? Когда я сделал это для проверки правильности, я просто написал в тегах текстовой области.

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

Профессиональный ASP.NET MVC предоставляет следующее объяснение различий в «слепках кода»:

Когда мы смотрим на Details.aspx шаблон более близко, мы найдем что он содержит статический HTML, а также как встроенный код рендеринга. <%%> код самородки выполняют код при просмотре рендеринг шаблона и код <%:%> самородки выполняют код, содержащийся внутри них, а затем сделать результат в выходной поток шаблона.

Осталось из этого описания, как работает слепок кода в <% =%>. Скотт Гатри описывает разницу в своем посте Новый синтаксис <%:%> для вывода кодировки HTML в ASP.NET 4 (и ASP.NET MVC 2) . Фил Хаак обсуждает это более подробно в серии о блоках кодирования HTML, которая начинается с блоков кодирования Html с ASP.NET 4 .

Вы обнаружили, что <% =%> выплевывает необработанный HTML-код в выходной поток, а <%:%> выполняет кодирование HTML.

0 голосов
/ 22 октября 2010

Вы хотите HtmlDecode

Чтобы привести пример MSDN

HttpUtility.HtmlDecode Method

using System;
using System.Web;
using System.IO;

   class MyNewClass
   {
      public static void Main()
      {
         String myString;
         Console.WriteLine("Enter a string having '&' or '\"'  in it: ");
         myString=Console.ReadLine();
         String myEncodedString;
         // Encode the string.
         myEncodedString = HttpUtility.HtmlEncode(myString);
         Console.WriteLine("HTML Encoded string is "+myEncodedString);
         StringWriter myWriter = new StringWriter();
         // Decode the encoded string.
         HttpUtility.HtmlDecode(myEncodedString, myWriter);
         Console.Write("Decoded string of the above encoded string is "+
                        myWriter.ToString());
      }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...