Я создаю простую функцию «новостей сайта» на веб-сайте MVC 2 .net 4. Новостные статьи сайта хранятся в простой базе данных sql, на самом деле я делаю это с помощью Entity Framework Code First и компактного sql, состоящего из столбцов articleID, articleDate articleSummary и articleDetail (model.ItemEntry в коде ниже). ArticleDetail - это текстовая область, которую я хотел бы отредактировать с помощью TinyMce или некоторых других редакторов WYSIWYG, если у вас есть альтернативные редакторы, которые могут предложить или рекомендовать, пожалуйста, сделайте это и почему.
Я ищу способ, чтобы текст в articleDetail вводился TinyMce посредством текстовой области, которая может содержать как html, так и текст, htmlencoded, поскольку он записан в строках таблицы. Сдается мне, что это будет вероятный вариант конфигурации, я не нашел его. И что при помощи htmlencoding textarea обойдут все трудности, с которыми я столкнулся при попытке сохранить данные TinyMce / textarea в sql.
Хотя я буду использовать это вживую, это в основном опыт обучения. И я немного упрямся, желая научиться делать это. В противном случае я просто использовал бы текстовое поле и пропустил WYSIWYG для этого простого приложения.
При попытке создать простой текст с помощью TinyyMce я столкнулся с проблемой .net 4 и проверки запросов. Похоже, что мне пришлось бы ослабить свою безопасность, поместив <httpRuntime requestValidationMode="2.0" />
в веб-конфигурацию и добавив [ValidateInput(false)]
в мои контроллеры для создания пост-действия. Я не хочу ослаблять безопасность, обеспечиваемую .net 4, теперь застрял в том, как убрать html из TinyMce / textarea.
В этот момент мне пришло в голову, что я действительно хотел сделать htmlencode текста, так как было бы полезно иметь html-форматирование в articleDetail. Сообщения в блогах и другие приложения сохраняют информацию в формате sql, которая в конечном итоге станет HTML, как они это делают?
Вкратце (некоторые из) мои вопросы
- Существуют ли редакторы WYSIWYG, которые htmlencode кодируют свой контент? Таким образом, я мог бы иметь htmlencoded html новостные статьи, хранящиеся в sql. Затем я попытаюсь htmldecode для отображения при отображении новостных статей.
поочередно
Исследовательские ресурсы, которые я нашел полезными в этом процессе обучения.
Ack! не могу опубликовать их, так как это мой первый пост. Ну и дела, я думал, что прочитал FAQ и был хорошим Nerditquette вроде парня. Кстати, я написал это в Live Writer, и он разместил здесь в моем блоге, включая ссылки, которые я исследовал и нашел полезными.
Некоторые соответствующие фрагменты исходного кода.
Create.aspx
<script type="text/javascript">
tinyMCE.init({
mode: "textareas",
theme: "simple"
});
<div class="editor-label">
<%: Html.LabelFor(model => model.ItemEntry) %>
</div>
<div class="editor-field">
<%: Html.TextAreaFor(model => model.ItemEntry) %>
<%: Html.ValidationMessageFor(model => model.ItemEntry) %>
</div>
NewsController.cs
// POST: /News/Create
[HttpPost]
// [ValidateInput(false)]
public ActionResult Create(Item item)
{
if (ModelState.IsValid)
{
siteNews.Items.Add(item);
siteNews.SaveChanges();
return RedirectToAction("Index");
}
return View(item);
}