从块的控制器访问当前页面

本文关键字:当前页 访问 控制器 | 更新日期: 2023-09-27 18:30:17

我正在使用EPiServer 7.7 MVC,并且有一个本地/全局块MyBlock的场景。 MyBlock有一个控制器MyBlockController。 我需要获取调用MyBlockController的页面的 ID:

 public class MyBlockController : BlockController<MyBlock>{
      public override ActionResult Index(MyBlock currentContent){
          Guid hostingPageId = ????
      }
  }

我已经浏览了BlockDataContentData类,但它们似乎没有任何对主机的引用。

我可以从控制器上下文中获取当前页面的 ID 吗?

从块的控制器访问当前页面

>EPiServer 的 PageRouteHelper 正是用于此目的。
它有一个属性 Page,用于返回当前请求上下文的当前 Page。

所以你的代码将变成:

public class MyBlockController : BlockController<MyBlock>
{
    private readonly PageRouteHelper _pageRouteHelper;
    public override ActionResult Index(MyBlock currentContent)
    {
        Guid hostingPageId = _pageRouteHelper.Page.PageGuid;
    }
}