EPiServer,如何链接到锚/标签

时间:2014-09-17 08:21:08

标签: hyperlink editor anchor episerver-7

我需要一种方法来链接到我页面中的一个部分,(使用一个锚/ hashtag)..应该处理此链接的属性是LinkItemCollection类型,但是当我添加一个新链接时...我收到一个新的"对话框"在哪里我可以选择我想要创建的链接类型..例如我有选择页面,媒体,外部链接和电子邮件..

我的第一个想法是使用选项"外部链接"然后只需输入/ #services,但EPiServer接缝到"更正"我将此更改为" http:slashslashslash#services"(slash = /)... so ..无论如何实际使用LinkItemCollection属性并且能够创建内部链接/锚点和链接/主题标签链接?

BR, INX

2 个答案:

答案 0 :(得分:0)

Marija Jemuovic有一个恰当命名的博文,内容涵盖:Workaround for extending the LinkItemCollection to support anchors

不幸的是它有点牵扯:

  

我没有尝试覆盖EPiServer组件,而是创建了一个包含Url属性和页面属性上的锚点的块,它们是相互依赖的。

基本上,她创建了一个具有Anchor属性的块,然后使用该格式控制器内的链接:

enter image description here

如果您需要在页面内设置锚点,您应该能够调整它。

答案 1 :(得分:0)

当我需要创建EpiServer Parallax网站时,我已经做了类似的事情。我没有使用链接项集合,而是使用了内容区域,然后创建了一个区块。

在页面渲染中,我循环遍历内容区域中的所有块,并使用友好URL并手动渲染菜单中的链接。这对你有用吗?

        private IList<NavigationItem> CreateMenu(StartPage startPage)
    {
        var list = new List<NavigationItem>();

        return _blockHelper.GetContentsOfType<BaseTabBlock>(startPage.MainContentArea)
                                                .Select(x => new NavigationItem() { Name = x.TabName, Link = x.TabName })
                                                .ToReadOnlyList();
    }

这是视图

<ul class="nav navbar-nav navbar-right">
            @foreach( var item in Model.Layout.Menu)
            {
                <li>
                    <a class="page-scroll" href="#@item.Link">
                        @item.Name
                    </a>
                </li>
            }
        </ul>

如果您想下载Parallax EpiServer Sample Site

,我的整个项目都在我的github上