我们正在使用PageTypeBuilder来定义我们的PageTypes,在一个页面上我们有一个表示Link项目集合的属性,如下所示:
[PageTypeProperty(Type = typeof(PropertyLinkCollection), HelpText = "Test links.", EditCaption = "Test links", SortOrder = 11)]
public virtual LinkItemCollection PageLinks { get; set; }
我们可以在CMS编辑器模式下使用链接,保存和发布填充此内容而不会出现任何错误。然后我们有一个继承自EPiServer.UserControlBase的用户控件,并使用下面的代码获取LinkItemCollection属性并将其绑定到转发器:
var links = currentPage.Property["PageLinks"].Value as LinkItemCollection;
if (links != null)
{
linkRepeater.DataSource = links;
linkRepeater.DataBind();
}
如果我在以CMS编辑器登录时查看页面,此页面工作正常并且链接参数已正确填充,但是如果我以普通用户身份查看页面而未登录链接变量始终为null(尽管我正在调试我可以看到currentPage.Property [“PageLinks”]存在,类型是LinkCollection,它只是Value为null
我需要在这里配置一些特定页面类型的权限吗?
答案 0 :(得分:1)
问题很可能是外部访问者无法访问LinkItemCollection中的某个页面。尝试以外部访问者身份访问集合中的链接,并从外部视图中删除任何实际锁定的链接。