如何从Umbraco(Razor)中的富文本编辑器中删除html标签

时间:2011-08-19 14:08:39

标签: razor umbraco umbraco-blog

我使用富文本编辑器在产品页面上显示说明,但页面呈现为:

<p>text description</p>

描述的宏是:

     

Razor语法:

@foreach ( var page in @Model.Children)
{


    <div id="productSection">
  <div id="productstext">

  <div id="image">
  <a href="@page.Url"><img src="@page.productImage" height="200px" width="230px"/></a> </div>
 <div id="title">
  <h3>@page.GetProperty("productTitle") </h3> </div>

<div id="description">

 @page.GetProperty("product") </div>
 </div>
 </div>
} 

Thnx提前

3 个答案:

答案 0 :(得分:6)

如果问题是如何删除在富文本周围呈现的段落标记,您可以尝试以下解决方案是否适合您:

@umbraco.library.RemoveFirstParagraphTag(page.product.ToString())

您可能希望将其包装在帮助器中:

@helper RemoveParagraph(HtmlString s)
{
    @Html.Raw(umbraco.library.RemoveFirstParagraphTag(s.ToString()))
}

然后像这样调用id:

@Helpers.RemoveParagraph(page.product)

请注意,umbraco.library.RemoveFirstParagraphTag也会删除换行符(大部分时间都不是问题)。

另见Umbraco论坛帖子关于这个问题:http://our.umbraco.org/forum/developers/razor/19379-Remove-paragraph-tags-with-razor

答案 1 :(得分:2)

我们在其中一个项目中遇到了同样的问题,并通过这种简单的方式解决了这个问题。使用“@ Html.Raw()”包装值可以解决问题。

<section class="links">
@{
    var Link = Model.Content.Descendants("links");

    <ul>
        @foreach (var links in Link)
        {
            <li data-category="@(links.GetProperty("weblinkCategory").Value)">
                <a href="@(links.GetProperty("weblinkAddress").Value)">
                    @(links.GetProperty("weblinkTitle").Value)
                    <span>@Html.Raw(links.GetProperty("weblinkDescription").Value)</span>
                </a>
            </li>
   }
    </ul>
}

答案 2 :(得分:0)

Umbraco 8 已删除不推荐使用的方法 coverage: unknown

相反,您可以使用:

RemoveFirstParagraphTag

其中 @Html.Raw(Model.Content.ToString().Trim().Substring(3).Substring(0, Model.Content.ToString().Trim().Length - 7)) 是您的财产的名称。