WYSIWYG редакторы после обратной передачи - PullRequest
0 голосов
/ 06 декабря 2011

Я пытался добавить разные редакторы wysiwyg на мою страницу.Если я сохраняю, а затем пытаюсь отредактировать свою запись, то все в порядке.Но если на странице редактирования я установил недопустимое значение в поле какой-либо записи и отправил, то ckeditor / tinymce содержит закодированный html с окружающими тегами <p></p>.Если я снова отправлю форму, тогда мой редактор wisiwyg будет содержать закодированное предыдущее значение, окруженное дополнительными тегами <p></p>.И т. Д.

Мои элементы страницы редактирования

...
@Html.EditorFor(m => m.Description)
...
<script type="text/javascript">
    CKEDITOR.replace('Description');
    CKEDITOR.config.htmlEncodeOutput = true;
</script>

Свойство My Description в

...
private string _description;

public string Description
{
     get
     {
         return HttpUtility.HtmlDecode(_description);
     }
     set
     {
         _description = value;
     }
}
...

Как заставить редакторы wysiwyg правильно загружать значение свойства, когда ModelState.IsValid==false

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Начиная с версии 3.0a1, при редактировании с помощью TinyMCE, если редактируемый HTML-файл не имеет элемента корневого блока (div, p, table и т. Д.), Он автоматически переносит содержимое.Вы можете отключить эту функцию, установив свойство forced_root_block.

Выдержка из http://www.tinymce.com/wiki.php/Configuration:forced_root_block

tinyMCE.init({
        ...
        forced_root_block : null
});
0 голосов
/ 07 декабря 2011

Другой способ - удалить CKEDITOR.config.htmlEncodeOutput = true; и установить для атрибута [AllowHtml] значение Description в этом случае.

...