Получить содержимое первого свойства RichTextEditor тега P

У меня есть свойство, которое является редактором форматированного текста в Umbraco 7.

Я хочу получить часть содержимого этого свойства, точнее, первый тег p.

Как я могу сделать это в Umbraco? Это вспомогательный класс, который я могу использовать?


person Mivaweb    schedule 29.01.2015    source источник


Ответы (1)


Не существует вспомогательного метода, который вы можете использовать из коробки, но написать свой собственный не должно быть слишком сложно.

Если вы используете MVC, вы можете написать расширение для MVC HtmlHelper следующим образом:

public static string GetFirstParagraph(this HtmlHelper helper, IHtmlString input)
{
    if (input != null && input.ToString() != string.Empty)
    {
        var htmlDoc = new HtmlDocument();
        htmlDoc.LoadHtml(input.ToString());
        var p = htmlDoc.DocumentNode.SelectSingleNode("//p");
        if (p != null)
        {
            return p.InnerText;
        }
    }

    return null;
}

Чтобы вызвать этот метод в вашем представлении, просто введите:

@Html.GetFirstParagraph(Umbraco.Field("yourPropertyAlias"))

при использовании метода Umbraco Field или:

@Html.GetFirstParagraph(Model.YourProperty)

если ваше представление строго типизировано.

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

person Rob Purcell    schedule 01.02.2015