我正在使用EPiServer 7.7 MVC并且我有一个本地/全局阻止MyBlock
的场景。 MyBlock
有一个控制器MyBlockController
。我需要获取调用MyBlockController
的页面的ID:
public class MyBlockController : BlockController<MyBlock>{
public override ActionResult Index(MyBlock currentContent){
Guid hostingPageId = ????
}
}
我查看了BlockData
和ContentData
类,但它们似乎没有任何对主机的引用。
我可以从控制器上下文中获取当前页面的id吗?
答案 0 :(得分:2)
EPiServer正是为了这个目的而拥有PageRouteHelper 它有一个属性Page,它返回当前请求上下文的当前页面。
所以你的代码会变成:
public class MyBlockController : BlockController<MyBlock>
{
private readonly PageRouteHelper _pageRouteHelper;
public override ActionResult Index(MyBlock currentContent)
{
Guid hostingPageId = _pageRouteHelper.Page.PageGuid;
}
}