我有一个以 ContentArea 作为其属性之一的页面类型
(currentPage.PrimaryComponentArea)
如何根据其类型获取存储在此属性中的块项目。
我还想访问块上的属性,所以我需要将它从 ContentAreaItem 转换为实际的块类型。
public ActionResult Index(RatePlanPageType currentPage)
{
..........
var allItems = currentPage.PrimaryComponentArea.Items;
var blocks = allItems.Where(x => bla bla bla < Can I do it using linq
}
Run Code Online (Sandbox Code Playgroud)
这是我的第一个 Episerver 项目,所以我希望这不是一个愚蠢的问题。
小智 5
var contentLoader = ServiceLocator.Current.GetInstance<IContentLoader>();
if (page != null && page.ContentArea != null && page.PrimaryComponentArea.Items.Any())
{
foreach (var contentItem in page.PrimaryComponentArea.Items)
{
var item = contentLoader.Get<YOUR_CONTENT_TYPE>(contentItem.ContentLink);
// do your stuff
}
}
Run Code Online (Sandbox Code Playgroud)
ContentArea 中的项保存为 ContentReference,所有 ContentReference 引用到一个 IContent。块和页面类型是 IContent。
如果要将内容区域限制为一种类型: [AllowedTypes(new [] {typeof(PageData), typeof(BlockData)})]
| 归档时间: |
|
| 查看次数: |
3603 次 |
| 最近记录: |