ASP.Net 4.0 с TinyMCE и кодировкой XML перекодирует контент при обратной передаче - PullRequest
6 голосов
/ 20 января 2011

У меня есть CMS на базе ASP.NET 4.0, где я использую TinyMCE (3.4) через jQuery для редактирования одного текстового поля.

В дополнение к этому у меня есть несколько других текстовых полей.На странице также есть еще один список DropDown, который управляет типом контента.В этом элементе управления включен автопостбэк, и он устанавливает видимость в текстовых полях, относящихся к элементу selectes.

Поскольку я хочу сохранить проверку обратной связи, я настроил TinyXML для использования xml для сериализации контента (кодировка: "xml").

Теперь у меня проблема, когда происходит обратная передача, например, из списка DropDown, перекодирует содержимое.

Init: "Hallo"
1st Postback: "<p>Hallo</p>"
2nd Postback: "<p>&lt;p&gt;Hallo&lt;/p&gt;</p>"

Я включил исходную текстовую область через css, и этопохоже, проблема в методе сохранения TinyMCS.У кого-нибудь есть решение, как решить эту проблему, возможно, с помощью специального save_callback на TinyMCE?

Ответы [ 3 ]

1 голос
/ 06 ноября 2011

Может ли быть, что данные перезагружаются в окно tinymce после их сохранения?

Когда я сталкивался с этим ранее в TinyMCE / WebForms, это было легко исправить путем декодирования данных перед заполнением поля формы.и после обратной передачи:

TextAreaID.Text = Server.HtmlDecode ("

hello

");
1 голос
/ 24 мая 2014

У меня только что была похожая проблема с Tinymce и Asp.NET MVC.В моем случае происходило следующее:

  1. Форма отправлена, и tinymce html кодирует содержимое (я использую опцию encoding: 'xml')
  2. В моем почтовом действии на стороне сервера,Я html декодирую теги, которые хочу разрешить (упрощенный пример: decodedHtml = model.HtmlContent.Replace("&lt;p&gt;", "<p>")).Затем, после сохранения в базе данных и т. Д., Я обновляю model.HtmlContent с декодированным html (model.HtmlContent = decodedHtml)

, но в этот момент редактор tinymce показывал закодированный html, то есть &lt;p&gt;test&lt;/p&gt;из <p>test</p>, хотя я и сделал model.HtmlContent = decodedHtml в своем посте.На самом деле asp.net игнорирует значение в модели при обратной передаче и связывает опубликованное значение (см. Здесь http://weblog.west -wind.com / posts / 2012 / Apr / 20 / ASPNET-MVC-Postbacks-and-HtmlHelper-Controls-ignoring-Model-Changes для получения дополнительной информации о том, как это работает).

Чтобы обойти это, вы должны выполнить

ModelState.Remove("HtmlContent");

, а затем привязать значение в вашей модели представления вместо объявленного значения.

в моем случае проблема была не в tinymce, а в том, как сообщения в форме работают в asp.net mvc.Надеюсь, это кому-нибудь поможет.

0 голосов
/ 20 января 2011

Помогает ли просмотр настройки entity_encoding ?

...