Hyperlink EPiServer,如何链接到锚/标签

Hyperlink EPiServer,如何链接到锚/标签,hyperlink,editor,anchor,episerver-7,Hyperlink,Editor,Anchor,Episerver 7,我需要一种方法来链接到我的页面中的一个部分(使用锚/标签)。。应该处理此链接的属性的类型为LinkItemCollection,但是。。当我向集合中添加新链接时,会出现一个新的“对话框”,在该对话框中,我可以选择要创建的链接类型。。例如,我可以选择页面、媒体、外部链接和电子邮件 我的第一个想法是使用“外部链接”选项,然后只需键入/#服务,但EPiServer会“更正”我并将其更改为“http:slashslashsslash#服务”(slash=/)。。。所以是否确实需要使用LinkItemCo

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

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

比尔,
Inx

Marija Jemuovic有一篇贴切的博客文章,内容包括:

不幸的是,这有点牵扯其中:

我没有试图覆盖epserver组件,而是创建了一个包含Url属性和anchor-on-page属性的块,这两个属性是相互依赖的

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


如果您需要在页面本身中设置锚定,您应该能够调整此设置。

当我需要创建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();
    }
private IList CreateMenu(开始页面开始页面)
{
var list=新列表();
return\u blockHelper.getContentSoftType(startPage.MainContentArea)
.Select(x=>newNavigationItem(){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>
    @foreach(Model.Layout.Menu中的变量项) {
  • }
如果你想下载,我的github上有整个项目