ASP.NET MVC 2 Telerik Editor не отображает форматированный текст - PullRequest
0 голосов
/ 13 апреля 2011

У меня проблемы с управлением редактором Telerik MVC, когда он позволяет мне вводить данные, правильно их форматировать (жирным шрифтом и т. Д.) И сохранять их в базе данных. Когда я просматриваю данные в браузере, они отображаются так, как я ожидал (во всех браузерах).

Когда я пытаюсь снова отредактировать текст в редакторе, он не отображает форматирование правильно, но отображает HTML-теги, окружающие текст, то есть работает вместо форматированного текста рабочий .

Когда я сохраняю данные во второй раз в базу данных и просматриваю их снова, данные появляются в следующем формате: рабочее описание

Это код, который я использую для отображения текстового редактора:

<% Html.Telerik().Editor()
    .Name("Description")
    .Value(Model.Description)
    .Render();
%>

// Code to the populate the model before saving to the database: There is no endcode or decode instruction here
article.Description = collection["Description"];
// Save changes.

Для отображения кода в браузере я использую этот код:

<%=
    HttpUtility.HtmlDecode(Model.Description)
%>

Надеюсь, это объяснение имеет смысл, и кто-то может помочь пролить свет на это? Я действительно не понимаю, как заставить это работать должным образом.

Ответы [ 2 ]

2 голосов
/ 20 июля 2011

Я использую ASP.NET MVC 3 с контролем Telrik, и я использовал приведенный ниже код, и он работает нормально.

Для создания редактора - на странице просмотра

 @{ Html.BeginForm(); }
            @Html.Telerik().EditorFor(model => model.Body).HtmlAttributes(new { style = "height:200px; width:500px;" })
            @Html.ValidationMessageFor(model => model.Body)

@{ Html.EndForm(); }

в контроллере

 public ViewResult Details(int id)
        {
            ArticleModels articlemodels = db.ArticleModels.Find(id);
            articlemodels.Body = HttpUtility.HtmlDecode(articlemodels.Body);
            return View(articlemodels);
        }

Для редактирования в представлении

@Html.Telerik().EditorFor(model => model.Body).HtmlAttributes(new { style = "height:200px; width:500px;" })
0 голосов
/ 13 апреля 2011

Я заставил это работать на меня, надеюсь, это сработает для вас. На мой взгляд, я использую этот код:

<%: Html.Telerik().EditorFor(model => model.Description).Name("ContentEditor")%>

Затем в контроллере я передаю значение за пределы модели (поскольку свойство Model.Description всегда равно null, я пока не знаю, почему), например:

[HttpPost]
public ActionResult Detail(MyModel myModel, string contentEditor)
{
    myModel.Description = HttpUtility.HtmlDecode(contentEditor);
    // Do stuff & save to DB
}
...