C# 如何获取当前页面数据?

C# 如何获取当前页面数据?,c#,episerver,C#,Episerver,我正在EPiServer上工作。我正在创建一个插件来编辑当前页面的内容。我试图从以下代码中获取数据: var pageRouteHelper = EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance<IPageRouteHelper>(); var currentPage = pageRouteHelper.Page; var pageRouteHelper=epserver.ServiceLocation.

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

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

 var currentPage = pageRouteHelper.Page;
var pageRouteHelper=epserver.ServiceLocation.ServiceLocator.Current.GetInstance();
var currentPage=pageRouteHelper.Page;

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

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

var pageId = 139;

var pageRef = new PageReference(pageId);

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

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

我们可以从pageUrl检索pageId。

如果无法获取当前页面,它将返回到StartPage。您确定在请求时您处于实际页面上,而不是在web api控制器或类似控制器内吗?地址栏上的页面id会更改。开始页是5,现在是139。所以我认为页面发生了变化。这是一个在编辑模式下使用的插件吗,好像是因为“地址栏上的页面id发生了变化”?然后还有其他方法可以在页面树中获取所选页面。在编辑模式下,所选页面id位于URL的片段部分,该部分从未发送到服务器,因此IPageRouteHelper无法解析它。是,它在编辑模式下工作。哪些方法可以帮助我获取当前页面的内容?什么样的控制器?如果您有一个名为
currentPage
的内容参数,如果请求是页面请求的一部分,则会自动填充该参数。
var pageUrl = HttpContext.Current.Request.RawUrl;