1

我需要一种方法来链接到我的页面中的某个部分,(使用锚/井号标签).. 应该处理此链接的属性是 LinkItemCollection 类型,但是.. 当我向集合添加新链接时我收到一个新的“对话框”提示,我可以在其中选择要创建的链接类型。例如,我可以选择“页面”、“媒体”、“外部链接”和“电子邮件”。

我的第一个想法是使用“外部链接”选项,然后只需键入 /#services,但 EPiServer 会“纠正”我并将其更改为“http:slashslashslash#services”(slash = /)... 所以。 . 是否有实际使用 LinkItemCollection 属性并能够创建内部链接/锚点和链接/标签链接?

溴,英克斯

4

2 回答 2

0

Marija Jemuovic 有一篇名副其实的博客文章,其中包括:扩展 LinkItemCollection 以支持锚点的解决方法

不幸的是,它有点涉及:

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

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

在此处输入图像描述

如果您需要在页面本身内设置锚点,您应该能够适应这一点。

于 2014-11-05T17:41:34.103 回答
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>

如果你想下载它,我的 github 上有整个项目Parallax EpiServer 示例站点

于 2015-08-06T20:51:29.910 回答