EpiServer:获取内容区域中项目的 ID

问题描述

我正在处理块 (blockA) 的视图 (Razor)。该块包含一个名为 solutions 的 ContentArea。我想获得一个列表,作为 solutions 中项目的 ID 字符串。

我尝试查看 @Model.solutions.FilteredItems.@(((IContent)Model).ContentLink. 以查看是否可以访问所有项目的 ID 列表。

如何以字符串列表的形式获取 solutions 中所有项目的 ID?

解决方法

你会在ContentAreaItem的ContentLink中找到ID,不需要强制转换

要输出为逗号分隔的列表,

// always null check contentareas in templates
var idList = Model.ContentArea != null && Model.ContentArea.FilteredItems.Any() ? string.Join(",",Model.ContentArea.FilteredItems.Select(x => x.ContentLink.ID)) : "";

<div>@idList</div>

把它写成一个列表

@if (Model.ContentArea != null && Model.ContentArea.FilteredItems.Any())
{
    <ul>
        @{
            foreach (var item in Model.ContentArea.FilteredItems)
            {
                <li>@item.ContentLink.ID</li>
            }
        }
    </ul>
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...