У меня есть, как мне кажется, простой сценарий, в котором мне нужно создать несколько текстовых областей с возможностью RTE. Я использую TinyMce, который прекрасно работает, если у меня есть только одно текстовое поле, а другие нет. Я создал простой пример приложения MVC 4, чтобы попытаться заставить все это работать, прежде чем переносить свои новые знания в реальное приложение. На этой странице есть и другие элементы, которые можно редактировать, поэтому похоже, что проблема может быть связана с помощником html. Или из того факта, что результирующий html показывает, что все три текстовых поля имеют одинаковый идентификатор. Однако, поскольку код явно не ссылается на идентификатор, я не думал, что это будет иметь значение. Кто-нибудь знает наверняка?
У меня простая модель:
TextModel text = new TextModel();
text.P1 = "This is an editable element.";
Я включил TinyMce в свой файл BundleConfig, а затем в свой _Layout. Тогда у меня есть строго типизированное представление.
@model TinyMCE_lite.Models.TextModel
И раздел сценария для расширения моих текстовых полей в фокусе:
<script>
$(window).load(function () {
$('textarea.expand').focus(function () {
$(this).addClass("expanding")
$(this).animate({
height: "10em"
}, 200);
});
$('textarea.expand').blur(function () {
$(this).animate({
height: "28px"
}, 100);
$(this).removeClass("expanding")
});
});
Потом проворачиваю в петлю три:
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<fieldset>
<h1 class="editable">Editable header</h1>
@for (int count = 0; count < 3; count++ )
{
int index = count + 1;
<h3>@index</h3>
<p class="editable">@Html.DisplayFor(model => model.P1)</p>
@Html.TextAreaFor(model => model.P2, 0,0, new { @class = "expand" })
}
<div style="margin-top: 25px;"><input type="submit" value="Save" /></div>
</fieldset>
}
Первый действует так, как ожидалось, показывая элементы редактора, но не остальные. Все три расширяются, как и ожидалось. Надеюсь, я упустил из виду кое-что простое. Любые идеи?