htmlencode TinyMce / textarea для sql MVC 2 .net 4 - PullRequest
1 голос
/ 14 августа 2010

Я создаю простую функцию «новостей сайта» на веб-сайте 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 для отображения при отображении новостных статей.

поочередно

  • Как мне просто упростить удаление html из TinyMce / textarea перед сохранением в sql?

  • Является ли расслабление для requestValidationMode = "2.0" моим единственным решением?

Исследовательские ресурсы, которые я нашел полезными в этом процессе обучения.

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);
    }

1 Ответ

0 голосов
/ 14 августа 2010
  • Почему вы хотите, чтобы htmlEncode вашего контента просто сохранить его в базе данных?Это бесполезный шаг.
  • Почему вы хотите удалить html, если вы используете текстовый редактор?Если просто хотите текст, оставайтесь с текстовой областью.Вы можете настроить tinyMCE для использования bbtags, но я бы использовал его только для пользователей, которым нельзя доверять.
  • Если для requestValidationMode установлено значение 2.0, вы можете разрешить коду сохранять HTML.В этом нет ничего плохого.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...