c# - 如何在 Root.Master.cs 中获取 EPIServer 当前加载页面的块?
问题描述
我正在尝试获取 a 的块CurrentPage
(如果它是特定页面)Root.Master.cs
,但我无法找到方法,如何做到这一点。
我试图用它的 ID(一个静态数字)加载块,但审阅者说你需要找到另一种方法。
public MapMode CurrentMapMode
{
get
{
if (!(CurrentPage is EstateDisplayPage))
return MapService.GetMapMode(Request.QueryString, CurrentPage as ISiteWithMap);
var block = ServiceLocator.Current.GetInstance<IContentLoader>()
.Get<IContent>(new ContentReference(10861)); //MapBlock ID: 10861
return MapService.GetMapMode(Request.QueryString, block as ISiteWithMap);
}
}
我需要找到另一种方法来查找block
,我不需要将静态数字 ( ID
) 传递给ContentRefrence
. 提前致谢
解决方案
这就是我为获得Blocks
特定页面所做的工作Root.Master.cs
。
public MapMode CurrentMapMode
{
get
{
if (!(CurrentPage is EstateDisplayPage))
return MapService.GetMapMode(Request.QueryString, CurrentPage as ISiteWithMap);
var page = CurrentPage as EstateDisplayPage;
foreach (var item in page.ContentArea.Items)
{
var block = ServiceLocator.Current.GetInstance<IContentLoader>()
.Get<IContent>(item.GetContent().ContentLink);
if (block is ISiteWithMap)
{
return MapService.GetMapMode(Request.QueryString, block as ISiteWithMap);
}
}
return MapMode.Google;
}
}
推荐阅读
- android - Kotlin-Android First App Unresolved Reference TextView Button etc
- c# - 在 C# 中限制表单类属性的访问修饰符
- python - 单元测试 get_absolute_url django
- javascript - JavaScript 编程语言中的返回语句
- spring-boot - CamelContext 必须指定在:HttpMessage@0x36ed8347
- java - 无法使用 JDBC 驱动程序连接到 MYSQL
- python - 如何在 python 中解决这个正则表达式问题
- javascript - 在 Yii2 中使用 clipboard.js
- java - 编译器是否从另一个中找出通用参数列表之一?
- java - Firebase getChildrenCount() 始终返回“1”