Как TinyMCE должен работать на странице ASP.NET MVC? - PullRequest
4 голосов
/ 25 июня 2010

В предыдущем вопросе кто-то указал мне, что TinyMCE - хороший и бесплатный редактор WYSIWYG. С тех пор самой простой частью является загрузка ресурса, и на странице примера ASP.NET MVC отображается редактор. Однако я пока не смог заставить его работать (даже после серфинга в сети - даже на веб-сайте TinyMCE я ничего не видел для первого пользователя).

Ну, может быть, главное - знать, как эта штука должна работать. Например, я поместил кнопку в тот же Html.BeginForm, где находится TextArea. Но когда я щелкнул по нему, не было никакой обратной реакции. Итак, вот мой вопрос:

Что за концепция стоит за редактором?

  1. Как мне опубликовать контент? (используя кнопку, ссылку ???)
  2. Как получить значение, указанное в моем методе действия? (с использованием локальной строковой переменной - (привязка модели?) )
  3. Чего мне ожидать? (текст, фрагмент HTML, оба ???)

Если кто-то может предоставить мне ресурс по этому вопросу, это было бы неплохо. Однако сейчас я хотел бы знать, как это работает.

Спасибо за помощь.

Ответы [ 2 ]

5 голосов
/ 25 июня 2010

TinyMCE берет стандартный элемент <textarea> и превращает его в Rich Text Editor, используя JavaScript. Таким образом, в ваших ASP.NET MVC Views вы просто создаете текстовую область обычным способом, например

<% Html.TextAreaFor(m => m.Description) %>

Когда TinyMCE преобразует это в текстовое поле, оно все равно будет поддерживать те же атрибуты id и name в вашем элементе textarea:

<textarea id="Description" name="Description"></textarea>

Таким образом, привязка модели должна продолжать работать как обычно, это атрибут name в приведенном выше примере кода, который передается при публикации, TinyMCE не изменит этого, поэтому ваши данные POST будут выглядеть примерно так: Данные POST - это просто пары имя / значение, разделенные & ampsersands).

Итак, в вашем действии контроллера:

[HttpPost]
public ActionResult SaveProduct(Product product)
{
    string description = product.Description;

    // Save Product to database (snip)
}

Переменная 'description' будет содержать необработанную HTML-разметку от TinyMCE. Так что все должно работать как обычно, не знаю, почему это не так. Можете ли вы проверить, что форма настроена и размещена как обычно, например. удалив TinyMCE и просто имея стандартную текстовую область.

Кроме того, вы случайно не используете элемент управления <asp:TinyMCE WebForms?

1 голос
/ 25 июня 2010

Наложения TinyMCE поверх текстовой области.

Используйте текстовую область TinyMCE так же, как и обычную текстовую область.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...