Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从块访问当前页面';s控制器_C#_Asp.net Mvc_Episerver_Episerver 7 - Fatal编程技术网

C# 从块访问当前页面';s控制器

C# 从块访问当前页面';s控制器,c#,asp.net-mvc,episerver,episerver-7,C#,Asp.net Mvc,Episerver,Episerver 7,我使用的是EpiServer7.7MVC,有一个场景,其中我有一个本地/全局块MyBlockMyBlock有一个控制器MyBlockController。我需要获取调用MyBlockController的页面的ID: public class MyBlockController : BlockController<MyBlock>{ public override ActionResult Index(MyBlock currentContent){

我使用的是EpiServer7.7MVC,有一个场景,其中我有一个本地/全局块
MyBlock
MyBlock
有一个控制器
MyBlockController
。我需要获取调用
MyBlockController
的页面的ID:

 public class MyBlockController : BlockController<MyBlock>{

      public override ActionResult Index(MyBlock currentContent){
          Guid hostingPageId = ????
      }
  }
公共类MyBlockController:BlockController{
公共覆盖操作结果索引(MyBlock currentContent){
Guid hostingPageId=????
}
}
我已经浏览了
BlockData
ContentData
类,但它们似乎没有任何主机引用

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

EPiServer具有用于此目的的id。
它有一个属性,用于返回当前请求上下文的当前页面

因此,您的代码将变成:

public class MyBlockController : BlockController<MyBlock>
{
    private readonly PageRouteHelper _pageRouteHelper;

    public override ActionResult Index(MyBlock currentContent)
    {
        Guid hostingPageId = _pageRouteHelper.Page.PageGuid;
    }
}
公共类MyBlockController:BlockController
{
专用只读PageRouteHelper _PageRouteHelper;
公共覆盖操作结果索引(MyBlock currentContent)
{
Guid hostingPageId=\u pageRouteHelper.Page.PageGuid;
}
}