3

Episerver 总是将共享块包装在标签中。我想摆脱这个。因此,如果在我的 LinkBlock 中有一个只有
<a href="#">link </a>
我不会 在用户视图中获得
<div> <a href="#">link </a> </div>的模板。

如果这是不可能的,我该如何将<div> 更改为任何其他标签,或者在其上放置一个 CssClass。就像在非共享块中是可能的:
<EPiServer:Property runat="server" PropertyName="RightContentArea" CustomTagName="aside" CssClass="column-2 sidebar"> </EPiServer:Property>

4

6 回答 6

3

我相信这是 ContentArea 属性的呈现,它在它包含的块周围添加了 div 标签。

EPiServer 建议,为了保留块元素本身的编辑功能,他们需要在它们周围放置 div

一个可能的解决方案可能是您自己对内容区域进行自定义渲染,但根据您使用的块模板的类型,让编辑工作可能会很棘手。链接中的示例用于渲染多个相同类型的块。

于 2013-04-11T11:38:27.583 回答
2

我在cshtml中使用了这个技巧:

@RenderBlocks(Model.CurrentPage.Content1)


@* ---------------------------------------------------------------------------------- *@
@* Render ContentArea without addition DIVs that EpiServer embed. That breaks layout a lot. *@
@helper RenderBlocks(EPiServer.Core.ContentArea content) { 
  if(null != content){
    var blocks = content.FilteredContents.ToArray();
    foreach(var block in blocks){
      @Html.PropertyFor(x => block)
    }
  }
}
于 2014-11-28T12:39:52.663 回答
2

您可以使用Property控件的CustomTagNameCssClass属性来格式化容器元素。

您还可以使用RenderSettings修改子元素的容器元素(如果适用)。

于 2013-01-30T09:46:12.617 回答
0

您可以使用属性控件上的CustomTagName属性选择标签

或者,如果您想删除标签,您可以使用控制适配器。一个很好的例子在这里找到

于 2013-01-16T15:14:15.253 回答
0

您还可以创建一个自定义内容区域,在实时模式下编辑时不呈现 div,而仅在编辑模式下呈现它们。

如果您只需要这样做一两次,我仍然建议您使用 ChildrenCustomTagName 路线,因为它有点灵活。如果你需要做很多并且你不能轻易改变你的 CSS,那么我会去自定义内容区域。如果您对如何删除 div 感兴趣,我在 github 上写了一篇博客文章和一个示例站点,内容区域中的额外 div 如何删除它们?

于 2015-08-07T10:10:48.027 回答
0

由于我无法删除<div>“si 不想要的”,因此我将自己的 CSS 类放在它们上面。这在 Webforms 中对我有用。(如果还有人用)

利用<RenderSettings ChildrenCssClass="yourCssClass" />

<EPiServer:Property runat="server" PropertyName="RightContentArea"CustomTagName="aside" CssClass="column-2 sidebar"><RenderSettings ChildrenCssClass="yourCssClass"></RenderSettings></EPiServer:Property>
于 2017-01-27T09:41:04.297 回答