ddgjgj Ответов: 2

Как предотвратить сохранение CKEditor не HTML-тегов , а только форматированного текста


Пожалуйста, найдите прилагаемый html-код и печатный экран моей проблемы. Когда я пишу что-то в ckeditor и применяю стиль с помощью html-тегов, он сохраняет текст с помощью HTML-тегов, а не только сам текст, в данном случае просто образец текста содержимого. Он также применяет стиль для определенных html-тегов в backgound и не показывает их как< pre><p & gt; content SAMPLE TEXT</p>


<div class="form-group">
      @Html.LabelFor(model => model.LongDescription1, htmlAttributes: new { @class = "control-label col-md-2" })
      <div class="col-md-10">

         @Html.TextAreaFor(model => model.LongDescription1, new { @id = "LongDescription1", @class = "form-control", @rows = "200" })



          @Html.ValidationMessageFor(model => model.LongDescription1, "", new { @class = "text-danger" })
          CKEDITOR.replace("LongDescription1", { htmlEncodeOutput: true });


      </div>
  </div>


Что я уже пробовал:

О том, что пробовал плакат, ничего не говорится.

Richard Deeming

Совсем не ясно.

Если вы хотите, чтобы текст был без какого-либо форматирования, то используйте <textarea>, а не HTML-редактор.

Если вы хотите сохранить форматирование, то вам нужно сохранить HTML-теги. Вот как применяется форматирование.

ddgjgj

Итак, код находится выше. Это мое представление создания в MVC. Что я хочу, так это иметь ckeditor для поля LongDescription1 , так что если я наберу там образец текста и сделаю там некоторое HTML-форматирование, например ОБРАЗЕЦ ТЕКСТА , он должен сохранить значение образца текста жирным шрифтом, в поле LongDescription1. И в режиме редактирования, если я попытаюсь отредактировать этот текст, если он должен показать мне точный форматированный текст , а не как в моем случае , например : КУРСИВНЫЙ , я хочу просто показать курсив в курсивном стиле в редакторе, а затем попытаться отредактировать этот текст .И на индексной странице он должен показать мне форматированный текст exast, как я его сохранил . Прежде всего, должен ли я добавить [AllowHtml]

в этом поле public string LongDescription1 { get; set; } .Буду благодарен за любую помощь.

2 Ответов

Рейтинг:
1

Kornfeld Eliyahu Peter

CKEditor-это редактор на основе HTML. Все богатство, которое вы видите, приобретается с помощью HTML-тегов и их атрибутов... Если вы удалите HTML-часть, то получите обычный текст...


ddgjgj

Итак, код находится выше. Это мое представление создания в MVC. Что я хочу, так это иметь ckeditor для поля LongDescription1 , так что если я наберу там образец текста и сделаю там некоторое HTML-форматирование, например ОБРАЗЕЦ ТЕКСТА , он должен сохранить значение образца текста жирным шрифтом, в поле LongDescription1. И в режиме редактирования, если я попытаюсь отредактировать этот текст, если он должен показать мне точный форматированный текст , а не как в моем случае , например : КУРСИВНЫЙ , я хочу просто показать курсив в курсивном стиле в редакторе, а затем попытаться отредактировать этот текст .И на индексной странице он должен показать мне форматированный текст exast, как я его сохранил . Прежде всего, должен ли я добавить [AllowHtml]

в этом поле public string LongDescription1 { get; set; } .Буду благодарен за любую помощь.

Рейтинг:
1

Richard Deeming

Если я правильно понял ваш комментарий, проблема не в этом. редактирование HTML, но с демонстрировать опять это.

Когда вы используете:

@Model.LongDescription1
выходные данные автоматически кодируются в формате HTML. Это делается для защиты от уязвимостей межсайтового скриптинга.

Итак, если вы вошли: "Этот это тест"вывод будет: "&ЛТ;б&ГТ;это&ЛТ;/б&ГТ; это &ЛТ;и&ГТ;тест&л;/я и GT;"

Чтобы ваши выходные данные обрабатывались как HTML, вам нужно использовать HTML-код.Сырье[^] помощник:
@Html.Raw(Model.LongDescription1)

NB: Вам нужно будет убедиться, что пользователи не смогут внедрить вредоносный HTML / Javascript в представления других пользователей.