我需要一种方法来链接到我页面中的一个部分,(使用一个锚/ hashtag)..应该处理此链接的属性是LinkItemCollection类型,但是当我添加一个新链接时...我收到一个新的"对话框"在哪里我可以选择我想要创建的链接类型..例如我有选择页面,媒体,外部链接和电子邮件..
我的第一个想法是使用选项"外部链接"然后只需输入/ #services,但EPiServer接缝到"更正"我将此更改为" http:slashslashslash#services"(slash = /)... so ..无论如何实际使用LinkItemCollection属性并且能够创建内部链接/锚点和链接/主题标签链接?
BR, INX
答案 0 :(得分:0)
Marija Jemuovic有一个恰当命名的博文,内容涵盖:Workaround for extending the LinkItemCollection to support anchors。
不幸的是它有点牵扯:
我没有尝试覆盖EPiServer组件,而是创建了一个包含Url属性和页面属性上的锚点的块,它们是相互依赖的。
基本上,她创建了一个具有Anchor属性的块,然后使用该格式控制器内的链接:
如果您需要在页面内设置锚点,您应该能够调整它。
答案 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>
,我的整个项目都在我的github上