EPiServer - 如何获取当前页面数据?

EPiServer - How can I get current page data?

我正在开发 EPiServer。我正在创建一个插件来编辑当前页面的内容。我正在尝试从以下代码中获取数据:

 var pageRouteHelper = EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance<IPageRouteHelper>();

 var currentPage = pageRouteHelper.Page;

但是每次currentPage returns我都是起始页的内容。这里缺少什么,我无法在屏幕内容上获取我打开的页面?

如果我们有页面 ID,例如 139,使用以下代码我们可以检索页面的内容。

var pageId = 139;

var pageRef = new PageReference(pageId);

var contentRepository = ServiceLocator.Current.GetInstance<IContentLoader>();

var page = contentRepository.Get<PageData>(pageRef);

从浏览器获取页面 ID 的一种简单但可能不是最实用的方法是

var pageUrl = HttpContext.Current.Request.RawUrl;

我们可以从 pageUrl 检索 pageId。