TinyMCE.MVC.Jquery не будет отображаться?

Итак, работая в Visual Studio 2012, я скачал пакет TinyMCE.MVC.JQuery и установил его с помощью NuGet. После того, как я остановился, я последовал этому руководству, чтобы настроить его:

http://www.tugberkugurlu.com/archive/tinymce-html-text-editor-and-asp-net-mvc-setting-it-up-has-become-easy-with-nuget

Мой проект MVC3 уже существует, поэтому есть небольшие изменения.

Это моя функция создания контроллера:

 //
    // GET: /Pages/Create

    public ActionResult Create()
    {
        return View();
    } 

    //
    // POST: /Pages/Create

    [HttpPost, ActionName("Create")]
    public ActionResult Create(Database_Table database_table)
    {
        if (ModelState.IsValid)
        {
            db.Database_Table.Add(database_table);
            db.SaveChanges();
            return RedirectToAction("Index");  
        }

        return View(database_table);
    }

Мое редактирование:

  //
    // GET: /Pages/Edit/5

    public ActionResult Edit(int id)
    {
        Database_Table database_table = db.Database_Table.Find(id);
        return View(database_table);
    }

    //
    // POST: /Pages/Edit/5

    [HttpPost, ActionName("Edit")]
    public ActionResult Edit(Database_Table database_table)
    {
        if (ModelState.IsValid)
        {
            db.Entry(database_table).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(database_table);
    }

Это мой класс модели:

public class Pages
{
    public int PageID { get; set; }
    public string PageURL { get; set; }

    [UIHint("tinymce_jquery_full"), AllowHtml]
    public string PageHTML { get; set; }


    public class DatabaseContext : DbContext
    {
        public DbSet<Database_Table> Pages { get; set; }
    }
}

Это вид редактирования:

@using (Html.BeginForm()) {


@Html.ValidationSummary(true)
<fieldset>
    <legend>Pages</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.PageURL)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.PageURL)
        @Html.ValidationMessageFor(model => model.PageURL)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.PageHTML)
    </div>
    <div class="editor-field">
         @Html.EditorFor(model => model.PageHTML)
        @Html.ValidationMessageFor(model => model.PageHTML)
    </div>



    <p>
        <input type="submit" value="Save" />
    </p>

И оба они упоминаются в _Layout.cshtml:

<script src="@Url.Content("~/Scripts/jquery-1.7.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/tinymce/jquery.tinymce.js")" type="text/javascript"></script>

Извините, если я глуп, но когда я запускаю страницу редактирования, редактор WYSIWYG не отображается, это просто стандартное текстовое поле. Может ли кто-нибудь увидеть мою проблему?


person Bohdi    schedule 29.08.2012    source источник
comment
Загрузите страницу в Google Chrome, щелкните правой кнопкой мыши страницу и выберите Inspect Element, убедитесь, что ошибок JS нет, они будут отмечены красным числом в правом нижнем углу страницы.   -  person Garrett Fogerlie    schedule 29.08.2012
comment
Ошибки Javascript не отображаются в google chrome или firebug:/   -  person Bohdi    schedule 29.08.2012
comment
Интересно, все выглядит хорошо. Возможно, попробуйте переустановить TinyMCE еще раз. Возможно, вы захотите сделать резервную копию вашего проекта заранее.   -  person Garrett Fogerlie    schedule 29.08.2012
comment
Ссылка ~/Scripts/tinymce/jquery.tinymce.js уже находится в пользовательском редакторе tinymce_jquery_full.cshtml? Если это так, вы можете ссылаться на него дважды (один раз в макете и один раз в редакторе). Возможно, вам это не нужно в файле макета, который вы могли бы использовать для страниц, не имеющих полей TinyMCE.   -  person christophersw    schedule 03.10.2012
comment
У меня ТОЧНО такая же проблема. Отображается обычное текстовое поле. Все команды NUGET выполнялись, хотя я использую MVC4. Вы когда-нибудь получали ответ на этот вопрос, который сработал?   -  person Apollo SOFTWARE    schedule 30.04.2013


Ответы (2)


вам не хватает этого в вашем представлении:

крошечныйMCE.init({

so:

<script type="text/javascript" src="/js/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
        // General options

....

ИЛИ Если вы используете плагин Jquery, вам нужно это (на ваш взгляд):

<!-- Load jQuery build -->
<script type="text/javascript" src="../js/tinymce/jscripts/tiny_mce/jquery.tinymce.js"></script>
<script type="text/javascript">
        $(function() {
                $('textarea.tinymce').tinymce({
                        // Location of TinyMCE script
                        script_url : '../js/tinymce/jscripts/tiny_mce/tiny_mce.js',

                        // General options

* помните: вашему тегу textarea нужен класс 'tinymce' =>

<textarea id="content" name="content" class="tinymce" style="width:100%">
</textarea>

посмотрите примеры на их сайте.

person ShaneKm    schedule 11.01.2013

Убедитесь, что у вас есть ссылка на jQuery в верхней части страницы. Или где-нибудь перед вашим HTML-редактором.

person RyanMAd    schedule 28.06.2013