EpiServer如何获取特定页面的链接URL?

use*_*470 7 episerver episerver-7

我需要使用起始页上的链接按钮绑定博客页面的LinkURL.我所做的实际上是找到了Page ID并使用它获取了一个Page Reference.

PageReference BlogPageReference = new PageReference(21);

PageData BlogPage = GetPage(BlogPageReference);

var url = BlogPage.LinkURL;
Run Code Online (Sandbox Code Playgroud)

这非常简单,但我不满意页面ID是硬编码的.有没有更好的方法来实现这一点,例如获取Page by Page名称?或任何其他方式?

提前致谢 :)

小智 10

我将在"页面"类型的起始页面上创建一个属性,这意味着该属性将具有类型PageReference.然后它不再是硬编码的.

将这样的"设置"属性移动到单独的"设置"页面类型也很常见,该页面类型本身通过root或startpage(它们是常量)中的属性进行链接.

我是从记忆中写的,所以请原谅代码中的任何错误.

var startPage = DataFactory.Instance.Get<StartPage>(PageReference.StartPage);
var settingsPage = DataFactory.Instance.Get<SettingsPage>(startPage.SettingsPage);
var blogPageRef = settingsPage.BlogPage;
Run Code Online (Sandbox Code Playgroud)

其中定义了SettingsPage和BlogPage

public virtual PageReference xxxPage {get; set; }
Run Code Online (Sandbox Code Playgroud)

在您的页面类型类中.